在打开一个可选值时,意外地发现了#n;"核心数据

时间:2014-11-28 05:31:48

标签: ios iphone core-data swift

我设置了核心数据,并且每次调用该函数时都会获得fatal error: unexpectedly found nil while unwrapping an Optional value。这是功能:

func actionOnSwipe() {

var appDel : AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
        var context : NSManagedObjectContext = appDel.managedObjectContext!

        var newQuote = NSEntityDescription.insertNewObjectForEntityForName("KeptQuotes", inManagedObjectContext: context) as NSManagedObject
        newQuote.setValue("testQ", forKey: "quote")
        newQuote.setValue("testA", forKey: "author")

context.save(nil) 

}

我不认为问题是`context.save(nil)'主要是因为我评论了它,应用程序仍然崩溃。

谢谢:)

2 个答案:

答案 0 :(得分:0)

确保在委托中正确初始化了您的上下文。

答案 1 :(得分:0)

使用'强制展开'运算符!,您正在邀请运行时异常。通常,除非您知道标识符绑定到非零值,否则不应强制解包标识符。因此,既然您不知道managedObjectContext的定义位置,那么您肯定不应该强制展开它。

那么,managedObjectContext来自哪里? Apple Xcode模板包含一个带有Core Data'的主/详细项目。模板。要查看它,请进入Xcode,创建一个新的IOS项目,选择' Master / Detail Application',选择语言:Swift,单击'使用核心数据。然后检查ApplicationDelegate。

ApplicationDelegate具有延迟初始化的managedObjectContext属性。它有点涉及创建一个,因为它依赖于托管对象模型,持久存储和其他基本的核心数据概念。