4

有没有办法告诉 Core Data 禁用它的内存管理?我在一个视图中有 NSManagedObjects 很长时间没有保存到上下文中。托管对象位于表格视图中。用户将首先看到该视图,然后导航到另一个视图,在返回表视图之前在那里花费大量时间。我收到了这个异常:“NSObjectInaccessibleException - CoreData 无法完成错误”</p>

4

2 回答 2

4

要在使用 NSFetchRequest 获取核心数据实体时禁用故障,只需在执行请求之前添加 [request setReturnsObjectsAsFaults:NO] 行。

在此处阅读更多详细信息

于 2012-05-17T16:42:26.390 回答
1

Core Data 故障履行错误通常意味着您持有一个已发生故障的对象,而另一个线程已删除其中一个子对象并提交到持久存储。因此,当原始线程返回完成故障时,那里就没有任何东西了。

您可以做的一件事是让您的其他视图监听 NSManagedObjectContextDidSave 和 NSManagedObjectContextWillSave 以在更改发生时对更改做出反应(即重新加载新数据),这样您就不会在缓存中遇到坏对象。

于 2012-05-17T16:27:30.413 回答