La class 'ViewController' no tiene ningún error de initialization: xcode Beta 4

Recibo este error en un file que funciona previamente en todos los otros beta, por alguna razón en el beta 4 xcode muestra este error, es el único file en el proyecto completo que lo hace y no estoy seguro de por qué lo hace Solo para la beta 4, ¿alguna idea? Intenté usar el init por defecto pero obtuve un error de compilation.

Creo que hay demasiados códigos para colocar, por lo que en vez heres el file directo.

https://www.dropbox.com/s/7a6q1oyj2qnshu0/SearchView.swift

import UIKit import CloudKit import Foundation import QuartzCore import MediaPlayer import AVFoundation import CoreMedia class SearchViewController: UIViewController, UITableViewDelegate,UITableViewDataSource, UISearchBarDelegate, UIScrollViewDelegate, SearchAPIProtocol { enum UIUserInterfaceIdiom : Int { case Unspecified case Phone // iPhone and iPod touch style UI case Pad // iPad style UI } var searchCell: SearchViewCell = SearchViewCell() var progressView: CGCircleProgressView = CGCircleProgressView() var tableData = NSArray() var buttonIndex: NSIndexPath? var previousIndex: NSIndexPath? var songPlayer = AVPlayer() var hidden = Bool() var startContentOffset = CGFloat() var lastContentOffset = CGFloat() var firstAmount = Int() var imageCache = NSMutableDictionary() var searchOpen: Bool? var searchAPI: SearchAPIController = SearchAPIController() @IBOutlet var tableView: UITableView! @IBOutlet var searchBar: UISearchBar! @IBOutlet var sBar: UIView! override func viewDidLoad() { super.viewDidLoad() var nib = UINib(nibName: "SearchViewCell", bundle: nil) tableView.registerNib(nib, forCellReuseIdentifier: "Cell") searchAPI.delegate = self searchAPI.searchItunesFor("Justin") // container = CKContainer.defaultContainer() //publicDatabase = container?.privateCloudDatabase self.setUpSearchBar() hidden = false self.tableView.contentInset = UIEdgeInsetsMake(108, 0, 0, 0) var subViews: UIView = searchBar.subviews.bridgeToObjectiveC().lastObject as UIView var textView: UITextField = subViews.subviews.bridgeToObjectiveC().objectAtIndex(1) as UITextField textView.textColor = UIColor.whiteColor() // Do any additional setup after loading the view, typically from a nib. } func setUpSearchBar() { var visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .Dark)) as UIVisualEffectView visualEffectView.frame = sBar.bounds sBar.addSubview(visualEffectView) sBar.sendSubviewToBack(visualEffectView) sBar.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.CenterX, relatedBy:.Equal, toItem:sBar, attribute:.CenterX, multiplier:1, constant:0)) sBar.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.CenterY, relatedBy:.Equal, toItem:sBar, attribute:.CenterY, multiplier:1, constant:0)) sBar.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.Width, relatedBy:.Equal, toItem:sBar, attribute:.Width, multiplier:1, constant:0)) sBar.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.Height, relatedBy:.Equal, toItem:sBar, attribute:.Height, multiplier:1, constant:0)) sBar.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.Leading, relatedBy:.Equal, toItem:sBar, attribute:.Leading, multiplier:1, constant:0)) sBar.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.Trailing, relatedBy:.Equal, toItem:sBar, attribute:.Trailing, multiplier:1, constant:0)) visualEffectView.setTranslatesAutoresizingMaskIntoConstraints(false) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } 

y mostrando tableview:

 func tableView(tableView: UITableView!, heightForHeaderInSection section: Int) -> Int { return 1 } func tableView(tableView: UITableView!, viewForFooterInSection section: Int) -> UIView { var view = UIView(frame: CGRect.zeroRect) return view } func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat { return 81 } func tableView(tableView: UITableView!, heightForFootInSection section: Int) -> Int { return 1 } func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int { if self.tableData.count > firstAmount { return firstAmount + 1 } else { return 0 } //return self.tableData!.count } func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { let CellIndentifier: NSString = "Cell" let moreID: String = "moreCell" var searchCell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as SearchViewCell var rowData: NSDictionary = self.tableData[indexPath!.row] as NSDictionary var rows = indexPath.row if rows == firstAmount { searchCell.loadMoreView.hidden = false } else { searchCell.selectionStyle = UITableViewCellSelectionStyle.None searchCell.clipsToBounds = true searchCell.loadMoreView.hidden = true var artistName = rowData["artistName"] as String var trackName = rowData["trackName"] as String var previewURL = rowData["previewUrl"] as String //var artistURL = rowData["artistViewUrl"] as String //var buyURL = rowData["trackViewUrl"] as String var artworkURL = rowData["artworkUrl100"] as String searchCell.previewButton.addTarget(self, action: "flipButton:", forControlEvents: UIControlEvents.TouchUpInside) searchCell.songName.text = trackName searchCell.artistName.text = artistName var layer: CALayer = searchCell.blurView.layer layer.shadowOffset = CGSizeMake(0, 0) layer.shadowColor = UIColor(white: 0.0, alpha: 1.0).CGColor layer.shadowRadius = 1.0 layer.shadowOpacity = 0.5 searchCell.backImage.clipsToBounds = true var visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .Dark)) as UIVisualEffectView visualEffectView.frame = searchCell.blurView.bounds searchCell.blurView.addSubview(visualEffectView) searchCell.blurView.sendSubviewToBack(visualEffectView) // NSLayoutConstraint.deactivateConstraints(searchCell.blurView.constraints()) searchCell.blurView.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.CenterX, relatedBy:.Equal, toItem:searchCell.blurView, attribute:.CenterX, multiplier:1, constant:0)) searchCell.blurView.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.CenterY, relatedBy:.Equal, toItem:searchCell.blurView, attribute:.CenterY, multiplier:1, constant:0)) searchCell.blurView.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.Width, relatedBy:.Equal, toItem:searchCell.blurView, attribute:.Width, multiplier:1, constant:0)) searchCell.blurView.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.Height, relatedBy:.Equal, toItem:searchCell.blurView, attribute:.Height, multiplier:1, constant:0)) searchCell.blurView.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.Leading, relatedBy:.Equal, toItem:searchCell.blurView, attribute:.Leading, multiplier:1, constant:0)) searchCell.blurView.addConstraint(NSLayoutConstraint( item:visualEffectView, attribute:.Trailing, relatedBy:.Equal, toItem:searchCell.blurView, attribute:.Trailing, multiplier:1, constant:0)) visualEffectView.setTranslatesAutoresizingMaskIntoConstraints(false) var placeHolder = UIImage(named: "placeHolder.png") searchCell.artworkIMG.image = placeHolder searchCell.backImage.image = placeHolder dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { var urlString: NSString = rowData["artworkUrl100"] as NSString var image: UIImage? = self.imageCache.valueForKey(urlString) as? UIImage if( !image? ) { var imgURL: NSURL = NSURL(string: urlString) var request: NSURLRequest = NSURLRequest(URL: imgURL) var urlConnection: NSURLConnection = NSURLConnection(request: request, delegate: self) NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: {(response: NSURLResponse!,data: NSData!,error: NSError!) -> Void in if !error? { image = UIImage(data: data) self.imageCache.setValue(image, forKey: urlString) searchCell.artworkIMG.image = image searchCell.backImage.image = image } else { println("Error: \(error.localizedDescription)") } }) } else { searchCell.artworkIMG.image = image searchCell.backImage.image = image } }) } return searchCell } func tableView(tableView: UITableView!, willDisplayCell cell: UITableViewCell!, forRowAtIndexPath indexPath: NSIndexPath!) { cell.layer.transform = CATransform3DMakeScale(0.1,0.1,1) /*UIView.animateWithDuration(0.25, animations: { cell.layer.transform = CATransform3DMakeScale(1,1,1) })*/ UIView.animateWithDuration(0.4, animations: { cell.layer.transform = CATransform3DMakeScale(1.1,1.1,1.1) }, completion: {(value: Bool) in cell.layer.transform = CATransform3DMakeScale(1,1,1) }) } 

De SwiftSoda.com:

Muchos progtwigdores Swift están teniendo problemas con ViewControllers y Xcode beta 4. El error es viewController no es constructible con ().

Pero si mira su controller de vista, verá otro error, Class viewController no tiene inicializadores. Seguido de (reemplace con los puntos de venta que esté utilizando) NSTextField tiene el tipo no opcional 'NSTextField'.

Configurar los IBOutlets con? El final corrige el problema. Después de eso, necesitará cambiar alguna syntax cada vez que se use la variable Outlet.

Aquí hay un breve ejemplo:

 //ViewController Class File: // view controller swift file for OS X import AppKit // you can use () for AnyObject as long as you do some things first. var mvc = vc() class vc: NSViewController { // the key here is "?" after NSTextField to declare an optional @IBOutlet var myStatusField: NSTextField? } //AppDelegate File: import AppKit //here we load the view inside the AppDelegate class AppDelegate: NSObject, NSApplicationDelegate { @IBOutlet var window: NSWindow! func applicationDidFinishLaunching(aNotification: NSNotification?) { // Insert code here to initialize your application //load and center view in main window window.contentView.addSubview(mvc.view) mvc.view.frame = window.contentView.bounds //here we display some text in myStatusField with *!.stringValue // ! is used to unwrap the optional. mvc.myStatusField!.stringValue = "Swift Soda wishes you a good day!" } } 

Tuve el mismo error porque una de mis properties no se inicializó. Espero que ayude a algunos pueblos

Creo que la forma más fácil es anular una function init sin anular palabra key y simplemente llamar a super.init, y funciona así

 @IBOutlet weak var tableView: UITableView! init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) } 

es posible que desee desenvolver de forma segura cualquier optionals con una instrucción IBOutletName como esta:

 if mvc.myStatusField { mvc.myStatusField!.stringValue = "Swift Soda wishes you a good day!" } 

De esa forma, tu aplicación no se bloqueará.

¿Estoy intentando que IBOutlets funcione sin usar? y! (opcional), pero hasta ahora parece ser lo único que funciona en beta4 con un NSViewController.

Implemente el siguiente en su controller de vista:

 requinetworking init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) }