我持续面对这个问题超过3个月。我已经搜索了很多并阅读了相关的文档并访问了很多论坛,但无法找到有效的解决方案。删除对象时,我收到典型的NSManagedObject错误。 NSManagedObjectContext无法删除其他上下文中的对象。
我试图绕过并尝试使用其NSManagedObject ID删除对象,但无济于事。
NSManagedObjectID *findingsSurveyDataItemApiId = [findingsSurveyDataItemApi objectID];
[self.managedObjectContext deleteObject:[self.managedObjectContext objectWithID:findingsSurveyDataItemApiId]];
任何人都可以告诉为什么以上的解决方案仍无效?
PS:我在应用程序中有两个托管对象上下文。
答案 0 :(得分:2)
我想这可能是来自Core Data的误导性错误消息。如果您要删除的对象尚未保存到持久性存储,objectWithID
将不会返回有效对象:
假定存在objectID表示的持久性存储中的数据 - 如果不存在,则在访问任何属性时(即,触发错误时)返回的对象会引发异常。
使用existingObjectWithID:error:
代替并在尝试删除之前检查它是否返回非零对象。