我有两个实体A和B。A与B有很多关系。A和B具有不同的managedObjectContext contextA和contextB。在修改contextB中B的某些属性后,我需要将托管对象B添加到托管对象A,但这是不可能的,因为它们不在同一上下文中。那么,如何将contextB中的更改传递给contextA而又不将其保存到persistentStore? ps。如果您想知道为什么我需要两个不同的上下文,则可以在此链接undo all changes made in a view controller上运行。

最佳答案

将托管对象从一个上下文复制到另一个上下文中,您可以使用对象的对象ID,如下例所示。

NSManagedObjectID *objectID = [managedObject objectID];

NSManagedObject *copy = [contextB objectWithID:objectID];


复制后,可以将对象B添加到对象A。

希望对您有帮助。

10-08 01:03