我正在使用MagicalRecord
来处理我正在进行的所有CoreData
资料,并NSFetchedResultsControllers
在TableViews
和CollectionViews
中显示数据。
问题是,在我的应用中的某个地方,我似乎遇到了"CoreData could not fulfill a fault"
异常的问题。
是否有解决方案为我的应用程序的这一部分设置断点?我遇到的主要问题是它崩溃了,我不知道在哪里找到它! “所有例外”断点似乎没有帮助...
顺便说一下。我没有保留任何managedObjects
......这让我更加奇怪......
感谢任何帮助
答案 0 :(得分:8)
当您的代码(或MagicalRecord)保留CoreData在托管对象上下文中删除的对象(通常在另一个线程上)时,会发生此错误。我会确保我不存储临时对象或可能作为属性,集合等删除的对象。因为你提到你没有,我会确保我没有可能不同步的线程代码,最后,我会确保MagicalRecord没有针对一对多关系类的某些线程背景删除或虚假垃圾收集,或者那种可能导致问题的类型。
作为解决方案,您可以手动检查故障对象以避免崩溃。看看这个问题的方法: How can I tell whether an `NSManagedObject` has been deleted?
很抱歉,如果这太普通了,但是没有看到你的申请,很难说你为什么会收到错误。
答案 1 :(得分:2)
也许放弃像MagicalRecord
这样的第三方框架可能有所帮助。我经历过这些框架几乎没有增加价值,并可能造成破坏。
我认为不保留托管对象与此无关。
另一个建议是,您可以在访问托管对象的代码中广泛使用日志语句。这应该可以帮助您缩小错误的可能位置。结合乐器,你很快就会抓住罪魁祸首。