我尝试使用CoreData来保存一些信息。
这是我的ViewController类:
import UIKit
import CoreData
class ContactView: UIViewController {
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var saveButton: UIButton!
var managedObjectContext: NSManagedObjectContext? = {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
//ERROR
if let managedObjectContext = appDelegate.managedObjectContext {
return managedObjectContext
}
else {
return nil
}
}()
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
我收到以下错误:
'条件绑定的初始化程序必须具有可选类型,而不是 的NSManagedObjectContext'
我无法理解这个错误,因为 var managedObjectContext:NSManagedObjectContext?应该是可选的!?我从Swift参考书中得到了这个例子......
感谢您的任何建议!
答案 0 :(得分:2)
NSManagedObjectContext
中的AppDelegate
实例不是可选的:
var managedObjectContext: NSManagedObjectContext = {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
return appDelegate.managedObjectContext
}()
不要使用参考书籍,它们可能已过时。信任编译器消息。