0

对于最近对应用程序的更新,我看到许多崩溃日志,其中包含核心数据无法完成故障的错误。但是在应用程序(启动或其他地方)中,我没有删除无法完成故障的对象,也不会级联删除它们。这个错误怎么会发生?有没有办法在实时应用程序中捕获并修复它?

如果您添加但还没有正确保存对象,也可能是这样吗?

4

1 回答 1

5

未“正确”保存的对象可能会导致此行为。

一种方法是:

  • 在子上下文中插入对象
  • 获取该对象的永久 ID
  • 保存到父上下文
  • 获取父上下文中的对象
  • 刷新父上下文中的对象
  • 访问父上下文中的对象(满足该对象的错误)

编辑:

在单一上下文架构中达到此状态的另一种方法是:

  • 插入一个对象
  • 获取对象的永久 id
  • 刷新对象
  • 尝试访问对象(触发对象故障)

刷新可能是获取结果控制器对数据进行分页的结果,而不一定是应用程序中“可见”的东西。

此外,还有一个 CoreData“错误”,它并不总是允许您在父子上下文架构中捕获此异常,但您可以尝试...

但是,如果这是您遇到的情况,那么这不是您的应用程序所期望的行为。您正在丢失添加到商店的新数据。

于 2013-11-15T07:13:28.837 回答