在Swift应用程序中遇到Core Data的奇怪问题。我对Core Data非常熟悉,但在Swift中使用它时似乎有一些(新的)粗糙边缘和“陷阱”。
我可以很好地将新对象插入到上下文中,并在运行时从我应用程序中的其他位置检索它们。但是,每当我尝试保存上下文时,它都会因为没有明显原因而失败(managedObjectContext.save()返回false)。当我记录或检查错误指针时,它是0x0000000 ...所以我没有得到任何关于出错的提示。
func saveContext() {
let error = NSErrorPointer()
if (!self.managedObjectContext.save(error)) {
println("*** Failed to save MOC with error: \(error.debugDescription)")
}
}
我设置了一个断点并检查了上下文,下面是部分结果...我还点了'insertedObjects'属性,确实找到了我试图保存的所有数据。那里的一切看起来都很好。
为什么上下文不会保存?我意识到,没有任何错误或例外,没有太多可以解决的问题,但我希望有人遇到过此问题并且要么知道修复或者至少可以指出我正确的方向。谢谢:))
我打开SQL调试并在尝试保存时获取以下内容。无论如何我不是SQL专家,但这看起来像是缺少的东西。也就是说,我没有看到任何INSERT语句。此外,奇怪的是,此输出仅在我第一次尝试在启动应用程序时添加书签时生成。在那之后,它是妈妈。
2015-03-23 14:19:13.152 NTBrowser [3535:157990] CoreData:sql:SELECT TBL_NAME FROM SQLITE_MASTER WHERE TBL_NAME ='Z_METADATA' 2015-03-23 14:19:13.152 NTBrowser [3535:157990] CoreData:sql:pragma journal_mode = wal 2015-03-23 14:19:13.152 NTBrowser [3535:157990] CoreData:sql:pragma cache_size = 200 2015-03-23 14:19:13.153 NTBrowser [3535:157990] CoreData:sql:SELECT Z_VERSION,Z_UUID,Z_PLIST FROM Z_METADAT