【问题标题】:CoreData MultiThreading DeleteCoreData 多线程删除
【发布时间】:2011-10-06 22:09:15
【问题描述】:
在我的 iPad 应用程序中,我使用多线程从我的数据库中读取数据,因此我使用了不同的托管对象上下文,如 Fred McCann's blog 所述
我面临的问题是从数据库中删除项目时。当我尝试删除时,我收到 managedObjectContext 无法删除另一个 objectContext 的数据的错误。我该如何解决这个问题?
如果有人能帮我解决这个问题,那就太好了。
【问题讨论】:
标签:
ios
objective-c
multithreading
core-data
nsmanagedobjectcontext
【解决方案1】:
您需要传递objectIds,然后从另一个上下文中获取该对象。
NSManagedObject *object = // get the object...
NSManagedObjectID *objectID = object.objectID;
// Pass to other context on other thread...
// ...
NSManagedObject *sameObjectDifferentContext = [managedObjectContext objectWithID:objectID]