Iphone 在与非临时实体的关系中添加临时coredata实体

Iphone 在与非临时实体的关系中添加临时coredata实体,iphone,xcode,core-data,nsmanagedobject,nsmanagedobjectcontext,Iphone,Xcode,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,假设我有一个取回的结果数组,其中填充了实体(Entity-a) 所有这些实体都与另一个实体B存在关系 fetchedArray中可能缺少一些实体,在这种情况下,我想手动创建一个新实体-a,将其设置为与EntityB的关系,并手动将其添加到Entities数组中 Doable, but I don't want to save those "created", "new" entities of A type. 如果我确实创建了一个新实体-a并将nil添加到它的NSManagedObjectCo

假设我有一个取回的结果数组,其中填充了实体(Entity-a)

所有这些实体都与另一个实体B存在关系

fetchedArray中可能缺少一些实体,在这种情况下,我想手动创建一个新实体-a,将其设置为与EntityB的关系,并手动将其添加到Entities数组中

Doable, but I don't want to save those "created", "new" entities of A type.
如果我确实创建了一个新实体-a并将nil添加到它的
NSManagedObjectContext
,我无法将它作为与entityB的关系添加,因为它在objectContext中

这里还有别的路吗?我不想冒险将其添加到db中,然后将其删除,因为通过核心数据连接的应用程序会增加很多复杂性,不要忘记当应用程序刚刚关闭、电池耗尽或其他情况时出现的异常情况

我的主要问题是如何在与现有实体的关系中添加新的临时性实体,而忘记保存它

任何出路都是值得赞赏的,我们一直在努力解决这个问题。

jasonIM

您的是scratchpad MOC(托管对象上下文)的完美应用程序。基本上,创建一个新的主运行中心,永远不要保存它。然后,添加到实体中的项永远不会到达持久存储区


Andrew

注意,新创建的主运行中心与希望与现有主运行中心建立关系的实体。。不行。不同MOC之间的关系不起作用。是的@adonoho我可以创建一个新的MOC,但我想让新MOC中的实体与旧MOC中的实体相关,这在两个不同的上下文中是不可能的。我需要找到一种方法来获取这些临时实体!与现有实体相关且不能保存的组件,不要跨MOC,这将是不好的。为什么需要交叉MOC引用,而不是通过抓取或对象ID从持久性存储中读取旧实体?行缓存是您的朋友。andrew从一堆子实体中,如果某个实体不存在,我使用“nil”上下文创建它。那就把它和。。像其他人一样。。对其父实体。Coredata不允许这种关系。这种尝试的原因是,我可以从父级引用子级,当我调用MOC Save时,我创建的“nil”子实体不会持久化。虽然我可以添加一个属性并删除所有带有“shouldDeleteBeforeSave”的子项。。但那会带来很多开销。。我希望你能得到我想要的!jasonIM/user134611,请允许我恭敬地建议您正在进行过早优化。您是否确实有来自仪器的数据表明您正在产生性能关键开销?从你的评论来看,我对此表示怀疑。根据我对核心数据的经验,当它不必查询持久存储时,速度相当快。已创建但从未保存的对象不会命中存储。我认为您没有问题,我鼓励您尝试核心数据方式。一般来说,不要与Cocoa框架对抗。安得烈