不同线程(主/专用队列)中的pipe理对象上下文是否可以处理相同的对象?
我有主队列 ( AppDelegate
中提供的默认上下文) NSManagedObjectContext
,并创build另一个NSManagedObjectContext
私人队列中请求数据更新到Web服务。 我使用主要上下文来获取所有对象在整个应用程序中显示和pipe理,我使用私有上下文来插入我从服务接收到的新对象,以避免阻塞用户界面,并避免与对象的“干扰”在用户和/或应用程序与他们一起操作的情况下的主要背景。 这两种情况是“兄弟姐妹”,他们不是父母和孩子。 这是因为我需要创build所有新的对象,以便后来知道是否应该删除它们中的一些(对象的属性指示)。
重点是,我有重复的对象集合,一个在主要上下文中,另一个在私有上下文中。 他们应该有不同的对象ID,但根据我的应用程序的逻辑,他们是“相同”的对象。 如果我在主要上下文中有一个objectA
,并且在私有上下文中接收到相同的objectA
,但是具有更新的值,则需要在private上下文objectA
replace为objectA
。 但是他们理论上有不同的objectID
。 我的问题是:
- 我可以在主要上下文中search
objectA
,从那里删除它,并使用objectWithID
将objectA
从私有上下文“转移”到main? 考虑到主要内容在主队列中,而私人队列在私人队列中。 - 相反,我应该从主要上下文中删除
objectA
,然后保存私有上下文,然后再从主要上下文中获取objectA
? - 也许我应该以另一种方式处理这种情况…
提前致谢
- NSFetchedResultsController在合并“NSManagedObjectContextDidSaveNotification”后没有显示所有结果
- 如何找出是什么导致IOS设备上的错误崩溃报告?
- GCD中的并发与串行队列
- 在当前队列上同步分派
- dispatch_sync(dispatch_get_global_queue(xxx),任务)同步或asynchronous
- 在iOS中联锁的操作?
- 核心数据保存崩溃
- 在iOS 7上使用Private Queue Deadlocks Parent的子级上下文执行块locking和等待
- 为什么Objective-C / Swift中的asynchronousnetworkingtesting困难?