我已经尝试在我的源代码中恢复原来,试图弄清楚导致严重问题的原因。
当我从Core Data中删除NSManagedObjects
时,我的应用程序崩溃并提出以下建议:
CoreData`_nameForEntityDescription:
请注意,我在NSManagedObject
s中看到了错误,但也看不到其他NSManagedObject
错误。
我使用MagicalRecord来满足我的核心数据需求,但我并不怀疑这是问题所在。在这一点上,我非常难以解决问题所在。
是否有任何核心数据专家可能能够就此问题向我提供任何提示?
当我尝试为对象获取一组NSManagedObjects时(通过它的关系),我也看到_nameForEntityDescription完全相同的问题:
NSSet* delSet = [NSSet setWithSet:contact.contactEmails];
因此看起来NSManagedObject模型的某些东西是腐败的,但是我已经查看了我拥有的所有东西,我看不出它会是什么:(
答案 0 :(得分:1)
我在删除过去的对象时遇到了崩溃。由于这里没有足够的细节,我会给你一些一般性的东西来检查:
1)删除对象时,请确保没有对它的未完成引用。在删除对象后保存上下文时,将删除商店中的后备引用。这意味着,您的对象在数据库中没有实际记录。下次使用该对象时,Core Data会对你大喊大叫。
2)当您进行线程背景保存时,问题1会发生很多。您可以使用的解决方案是在保存后重新获取所有数据对象引用,以确保您拥有正确的数据和有效对象。 MagicalRecord提供了一个完成块机制来帮助您解决这个问题。
如果你怀疑你的ManagedObjectModel是问题,我还必须做一个干净的构建并从模拟器/设备中删除应用程序以删除任何以前的构建工件。