gpt4 book ai didi

objective-c - 制作不受管理的 NSManagedObject 的副本

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:16 26 4
gpt4 key购买 nike

所以我的问题是我有一个 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

我知道这不是特别清楚,但我只想制作一个我可以编辑的托管对象的临时副本,但即使我要调用“保存”也不保留更改。

如果您有任何问题,请告诉我,我知道我可能需要为您澄清这一点。

最佳答案

我看到了几个解决方案:

  1. 创建另一个实体作为临时实体。它与正在复制的对象具有相同的父类,但不会具有所有关系。将其插入上下文并复制值。保留这些临时对象的数组,并在适当的时候从上下文中删除它们。我以前做过这个并且很有效,但是有点复杂。

  2. 创建一个字典对象并将所有托管对象的键和值添加到其中。这可能更容易,但我还没有尝试过。

请记住您是如何复制对象的。您可能希望进行更深层次的复制(创建一个新对象来保存属性)而不是指向与原始对象相同的属性对象。

关于objective-c - 制作不受管理的 NSManagedObject 的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2169655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com