【问题标题】:NSManagedObjectContext does not work in SwiftNSManagedObjectContext 在 Swift 中不起作用
【发布时间】:2014-09-14 04:18:39
【问题描述】:
@IBAction func btnSave(sender: AnyObject) {
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext
}
这不起作用,因为它说它没有打开。
【问题讨论】:
标签:
core-data
swift
nsmanagedobjectcontext
【解决方案1】:
因为应用程序委托中的managedObjectContext 是可选的,您应该使用感叹号将其解包,将您的代码更改为:
let context: NSManagedObjectContext = appDel.managedObjectContext!
【解决方案2】:
您需要打开它,然后以安全的方式继续使用这样的 if 语句。
@IBAction func btnSave(sender: AnyObject) {
if let context:NSManagedObjectContext = appDel.managedObjectContext! as NSManagedObjectContext {
// safe to use the context here
}
}
【解决方案3】:
你在 AppDelegate madelURL 中改变了吗?
lazy var managedObjectModel: NSManagedObjectModel = {
let modelURL = NSBundle.mainBundle().URLForResource("**YOURPROJECTNAME**", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()