我设置了核心数据,并且每次调用该函数时都会获得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)'主要是因为我评论了它,应用程序仍然崩溃。
谢谢:)
答案 0 :(得分:0)
确保在委托中正确初始化了您的上下文。
答案 1 :(得分:0)
使用'强制展开'运算符!
,您正在邀请运行时异常。通常,除非您知道标识符绑定到非零值,否则不应强制解包标识符。因此,既然您不知道managedObjectContext
的定义位置,那么您肯定不应该强制展开它。
那么,managedObjectContext
来自哪里? Apple Xcode模板包含一个带有Core Data'的主/详细项目。模板。要查看它,请进入Xcode,创建一个新的IOS项目,选择' Master / Detail Application',选择语言:Swift,单击'使用核心数据。然后检查ApplicationDelegate。
ApplicationDelegate具有延迟初始化的managedObjectContext
属性。它有点涉及创建一个,因为它依赖于托管对象模型,持久存储和其他基本的核心数据概念。