Ios 托管对象上下文将不保存--无错误

Ios 托管对象上下文将不保存--无错误,ios,core-data,nsmanagedobjectcontext,Ios,Core Data,Nsmanagedobjectcontext,Swift应用程序中的核心数据有一个奇怪的问题。我相当精通核心数据,但在Swift中使用它时,似乎有一些新的缺点和缺陷 我可以很好地将新对象插入到上下文中,并在运行时从我的应用程序中的同一上下文中检索它们。但是,每当我尝试保存上下文时,它都会失败,没有明显的原因managedObjectContext.save返回false。当我记录或检查错误指针时,它是0x0000000…所以我没有得到任何关于出错原因的提示 func saveContext() { let error = NSErr

Swift应用程序中的核心数据有一个奇怪的问题。我相当精通核心数据,但在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]核心数据:sql:从SQLITE_主控中选择TBL_名称,其中TBL_名称='Z_元数据' 2015-03-23 14:19:13.152 NTBrowser[3535:157990]核心数据:sql:pragma journal_mode=wal 2015-03-23 14:19:13.152 NTBrowser[3535:157990]核心数据:sql:pragma cache_size=200
2015-03-23 14:19:13.153 NTBrowser[3535:157990]核心数据:sql:从Z_METADAT中选择Z_版本、Z_UUID、Z_PLIST我建议从启用sql调试输出开始。
可能没有做任何更改。

谢谢,这是一个好建议——我已经忘记了那个论点。当我打开SQL调试时,我会得到几行设置输出。然而,奇怪的是,在这之后,无论是我的获取还是尝试的保存都不会产生任何额外的输出。这里的一切看起来都很好,我希望屏幕上的一切看起来也很好……但当我尝试保存时,并没有得到任何SQL输出。我的猜测是,核心数据甚至在没有任何SQL语句的情况下都在犹豫?没错。更改托管对象属性值时,它仅影响内存中的对象。通过执行多个insert、update和delete语句来实际保存数据只在调用save方法时发生。问题是为什么当你调用它的时候没有任何改变。我不明白它怎么会认为它没有什么可以保存的。上下文的insertedObjects属性包含我的对象。已将SQL调试输出添加到我的原始问题中。请检查此答案(在我的案例中),原因是试图保存没有填写足够字段的对象。