所以我的问题是我有一个NSManagedObject’A’与’b’有很多关系.因此,对于’A’的每个对象,可以有许多’b’.
现在,我想复制’b’,以便’b’可以修改,但不能保存到商店,但’A’可以保存’.
例如,
self.title = A.name;
setOfB = A.setOfb; // This is still managed by CoreData
temporaryCopyOfB = [setOfB unManagedCopy];// I want to make a copy of b which isn't managed
b = [temporaryCopyOfB objectAtIndex:0];
b.property = newValue;
[A save];
//[setOfB objectAtIndex:0].property should still == oldValue
我知道这不是特别清楚,但我只想制作一个我可以编辑的托管对象的临时副本,但是即使我要调用’save’也不会保留更改.
如果您有任何问题,请告诉我,我知道我可能需要为您澄清一下.
最佳答案 我看到了几个解决方案:
>为临时目的创建另一个实体.它将与正在复制的对象具有相同的父类,但它不具有所有关系.将其插入上下文并复制值.保留这些临时对象的数组,并在适当的时候从上下文中删除它们.我以前做过这个并且它有效,但它有点复杂.
>创建一个字典对象,并将所有托管对象的键和值添加到其中.这可能更容易,但我还没试过.
请记住您是如何复制对象的.您可能希望进行更深层次的复制(创建一个新对象来保存属性),而不是指向与原始对象相同的属性对象.