NSManagedObjectContext在Swift中不起作用

时间:2014-09-14 04:18:39

标签: core-data swift nsmanagedobjectcontext

@IBAction func btnSave(sender: AnyObject) {

    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
    let context: NSManagedObjectContext = appDel.managedObjectContext    
}

这不起作用,因为它说它没有打开。

3 个答案:

答案 0 :(得分:0)

由于应用程序委托中的managedObjectContext是可选的,您应该使用感叹号将其解包,将代码更改为:

let context: NSManagedObjectContext = appDel.managedObjectContext!

答案 1 :(得分:0)

你需要解开它,然后用if语句以安全的方式继续。

@IBAction func btnSave(sender: AnyObject) {
    if let context:NSManagedObjectContext = appDel.managedObjectContext! as NSManagedObjectContext {
        // safe to use the context here
    }    
}

答案 2 :(得分:0)

您是否更改了AppDelegate madelURL?

lazy var managedObjectModel: NSManagedObjectModel = {
    let modelURL = NSBundle.mainBundle().URLForResource("**YOURPROJECTNAME**", withExtension: "momd")!
    return NSManagedObjectModel(contentsOfURL: modelURL)!
}()