【发布时间】:2015-09-13 10:26:12
【问题描述】:
比方说,我在主队列(“主上下文”)中的 NSManagedObjectContext 中有一个 mainObject。另一方面,我在私有队列(“私有上下文”)中有另一个 NSManagedObjectContext 中的 privateObject。
我想从 maon 上下文中删除 mainObject,并在私有上下文中插入 privateObject。我试过这个:
[mainContext insertObject:privateObject];
但我遇到了崩溃:
'一个 NSManagedObject 只能在单个 NSManagedObjectContext 中(或被其观察)。'
我也试过这个:
[mainContext objectWithID:privateObject.objectID];
还有这个:
NSManagedObject *managedObject = [privateContext existingObjectWithID:privateObject.objectID error:&error];
[mainContext insertObject:managedObject];
但我得到了同样的错误。
有没有办法将一个上下文中的对象插入到另一个上下文中?或者我应该保存私有上下文,然后从主上下文中获取这样的对象?还是有另一种不同的更好的方法来做到这一点?
谢谢
【问题讨论】:
-
你应该保存你的子上下文,然后与你的父上下文合并:)
-
@MohamadFarhand 我的上下文没有父/子关系,因为我需要在合并更改之前创建新对象,我无法直接使用源对象...
标签: ios core-data concurrency merge nsmanagedobjectcontext