CoreData 多线程删除

Posted

技术标签:

【中文标题】CoreData 多线程删除【英文标题】:CoreData MultiThreading Delete 【发布时间】:2011-10-06 22:09:15 【问题描述】:

在我的 iPad 应用程序中,我使用多线程从我的数据库中读取数据,因此我使用了不同的托管对象上下文,如 Fred McCann's blog 所述

我面临的问题是从数据库中删除项目时。当我尝试删除时,我收到 managedObjectContext 无法删除另一个 objectContext 的数据的错误。我该如何解决这个问题?

如果有人能帮我解决这个问题,那就太好了。

【问题讨论】:

【参考方案1】:

您需要传递objectIds,然后从另一个上下文中获取该对象。

NSManagedObject *object = // get the object...
NSManagedObjectID *objectID = object.objectID;
// Pass to other context on other thread...
// ...
NSManagedObject *sameObjectDifferentContext = [managedObjectContext objectWithID:objectID]

【讨论】:

以上是关于CoreData 多线程删除的主要内容,如果未能解决你的问题,请参考以下文章

CoreData 多线程

CoreData 多线程死锁

同时使用 CoreData、多线程和绑定

CoreData和SQLite多线程访问时的线程安全问题

CoreData 多线程正在生成随机崩溃

在多线程上下文中,在托管对象上设置属性时,CoreData 阻塞