【问题标题】: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    
}

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

【问题讨论】:

  • 这不是 Xcode 问题。

标签: core-data swift nsmanagedobjectcontext


【解决方案1】:

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

let context: NSManagedObjectContext = appDel.managedObjectContext!

【讨论】:

  • 致命错误:在展开可选值时意外发现 nil
【解决方案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)!
    }()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-17
      • 2014-08-05
      • 2014-07-27
      • 2014-07-29
      • 2016-02-18
      • 2015-03-19
      • 2015-02-18
      • 2018-10-11
      相关资源
      最近更新 更多