删除后保存时抛出以下错误。 NSManagedObjectContext 无法删除其他上下文中的对象。
我还检查了从中获取数据的 managedobjectcontext 是否与删除数据的 managedobjectcontext 相同。结果证明它们是相等的。你可以看到下面的比较。
NSManagedObjectContext *managedobjectcontext=[Singleton managedObjectContext];
NSArray *allprebuyers=[Fetchsavefromcoredata arrayfromentityresult:@"Buyer"];
for(int i=0;i<[allprebuyers count];i++)
{
Buyer *buyerobj=[allprebuyers objectAtIndex:i];
NSLog(@"class name : %@",NSStringFromClass([buyerobj class]));
//object comparison for fetched moc and moc which is deleting, log says Equal.
if ([[buyerobj managedObjectContext] isEqual:managedobjectcontext])
{
NSLog(@"Equal");
}
else
{
NSLog(@"Not Equal");
}
[managedobjectcontext deleteObject:buyerobj];
NSError *error=nil;
[managedobjectcontext save:&error];
}
我一直在努力解决这个问题,我们将不胜感激。
最佳答案
您必须选择删除托管对象。
1) 在拥有上下文中
[object.managedObjectContext deleteObject: object];
2) 在另一个上下文中
[anotherContext deleteObject: [anotherContext objectRegisteredForID: object.objectID]];
如果对象已注册到另一个上下文,则不能删除上下文中的对象。
此外,请注意上下文与线程或队列(主队列或私有(private)队列)相关联。确保从正确的线程/队列访问上下文。
关于iphone - 删除后的核心数据在保存时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11687537/