iPhone核心数据问题:仅为抽象类定义referenceData64
我有一个应用程序,可以下载/解析一个大的XML文件,并使用核心数据(大约4000个对象(实体))存储信息。 XML在另一个线程中加载/解析,该线程具有自己的NSManagedObjectContext 在尝试将实体保存到持久存储时,有时会出现以下错误(大约20%) 2010-03-03 23:41:42.802 xxx[7487:4203]XML保存中的异常iPhone核心数据问题:仅为抽象类定义referenceData64,iphone,xml,core-data,Iphone,Xml,Core Data,我有一个应用程序,可以下载/解析一个大的XML文件,并使用核心数据(大约4000个对象(实体))存储信息。 XML在另一个线程中加载/解析,该线程具有自己的NSManagedObjectContext 在尝试将实体保存到持久存储时,有时会出现以下错误(大约20%) 2010-03-03 23:41:42.802 xxx[7487:4203]XML保存中的异常 2010-03-03 23:41:42.802 xxx[7487:4203]说明:*-\u仅为抽象类定义了引用数据64。定义-[NSTem
2010-03-03 23:41:42.802 xxx[7487:4203]说明:*-\u仅为抽象类定义了引用数据64。定义-[NSTemporaryObjectID\u默认值\u referenceData64]
2010-03-03 23:41:42.803 xxx[7487:4203]名称:NSInvalidArgumentException
2010-03-03 23:41:42.804 xxx[7487:4203]用户信息:(空)
2010-03-03 23:41:42.805 xxx[7487:4203]原因:-\u仅为抽象类定义了引用数据64。定义-[NSTemporaryObjectID\u默认值\u referenceData64] 与保存前NSManagedObjectContext中的insertedObjects属性相比,我有一个简单的整数来跟踪应用程序创建的实体,当我得到错误时,这些数字不匹配,NSManagedObjectContext中的insertedObjects缺少大约10个实体 我不知道我应该如何继续调查这个问题,有人知道如何解决这个问题吗 谢谢
/oscar我在核心数据和多线程操作方面也有同样的问题。 阅读此文了解问题所在
在工作线程中,我开始为NSManagedObjectContext使用函数锁定、解锁,崩溃不再重复。您的实体是否使用自定义NSManagedObject子类?如果在
initWithEntity:insertIntoManagedObjectContext:
子类别*子类别=(子类别*)[self.managedObjectContext对象WithId:currentSubcategory.objectID]中执行不正确的初始化等操作,则可能发生此问题;这为我解决了问题。文章链接已断开。你的解决方案对我有效。就我个人而言,我是在使用块迭代库。在每个区块内,我都在向CD写入数据。我将块内容封装在@syncrhonized()中,现在效果很好。非常感谢。编辑:你的解决方案实际上与我刚才所说的不同。您指的是NSManagedObjectContext类中的-(void)lock和-(void)unlock,我指的是一个不锁定对象上下文的同步块。Apple不太擅长为其文档永久链接。搬到这里,我想: