对于未被删除的对象,“核心数据无法完成错误”

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

如果你添加了,但也没有妥善保存对象,也可以吗?

有可能是一个没有“正确”保存的对象导致这种行为。

一种方法是:

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

编辑:

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

  • 插入一个对象
  • 获取对象的永久ID
  • 刷新对象
  • 尝试访问对象(触发对象上的错误)

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

此外,还有一个CoreData“bug”,并不总是让你在父子上下文架构中捕获这个exception,但你可以尝试…

但是,如果这是您遇到的情况,这不是您的应用程序所需的行为。 你正在失去添加到商店的新数据。