2012-09-10 571 views
0

我试着恢复回来在我的源代码中的方式,试图找出是什么导致严重问题。核心数据对象删除崩溃应用程序

当我删除NSManagedObjects从核心数据我的应用程序崩溃,并提出以下建议:

CoreData`_nameForEntityDescription: 

注意,我看到了错误的NSManagedObject S的一个,而不是另一个NSManagedObject S以及。

我使用MagicalRecord来获取我的核心数据需求,但我并不怀疑这是问题所在。在这一点上,我非常难以解决问题。

是否有任何核心数据专家能够给我提示有关这个问题的任何提示?

我也看到有_nameForEntityDescription完全相同的问题,当我试图抓住一组NSManagedObjects的一个对象(通过它的关系):

NSSet* delSet = [NSSet setWithSet:contact.contactEmails]; 

所以它看起来似乎是用NSManagedObject腐败模型,但我已经看过我所拥有的一切,我看不到它会是什么:(

+0

除非你愿意提供具体的细节,否则你所得到的只是猜测。你有一个特定的问题。你的问题也应该提供具体的细节。 –

+0

是的,我知道。我一直在黑暗中拍摄一天。如果有帮助,我已经更新了更多细节的答案。 – runmad

回答

1

我在过去删除对象时发生崩溃因为您没有足够的细节,所以我会给你一些一般的东西来检查:

1)当你删除一个对象时,确保你没有任何未完成的引用。在删除对象后保存上下文时,您将删除商店中的后备参考。这意味着,您的对象在数据库中没有实际记录。下一次使用该对象时,Core Data将会对你大喊。

2)当你有线程后台保存时,问题1发生了很多。您可以使用的解决方案是在保存后重新提取所有数据对象引用,以确保您拥有正确的数据和有效的对象。 MagicalRecord提供了一个完成块机制来帮助你解决这个问题。

如果您怀疑您的ManagedObjectModel是问题,我还必须做一个干净的构建,并从模拟器/设备中删除应用程序以删除任何以前的构建工件。

+0

这个问题最终导致无法使用核心数据中的抽象实体,而现在我已经远离了!但是我对节省进行了一些调整,所以线程少了,现在都很好。谢谢! – runmad