我有一个ObjectA,它与ObjectB有一对多的关系。 ObjectB与ObjectA具有一对一的反向。这一切似乎都很顺利,直到我意识到调用[objectA.objectBSet removeAllObjects]
打破了ObjectB的实例的反向关系,其中Set位于Set内部。 objectA.objectBSet
只是objectBs的NSMutableOrderedSet
,我认为这是来自 mogenerator 工具(如果这有任何区别)。
这可能还是我做错了什么?简单地从父集合中删除一个对象可以自动从CoreData影响其反向关系的值吗?
非常感谢
答案 0 :(得分:1)
这是应该如何工作的。如果两个关系是反转的,那么它们必须对于每个对象彼此一致。如果您告诉ObjectA
删除与ObjectB
实例的所有关系,那么这些ObjectB
实例也会删除与ObjectA
的关系。这就是反向关系如何运作。如果ObjectB
实例仍声称与ObjectA
实例相关,则反向关系将处于不一致状态。
如果由于某种原因这不是您想要的,请使用<{1}}和ObjectA
之间不彼此反转的关系。
答案 1 :(得分:0)
是的,当您从Set中删除对象时,CoreData将为您取消反向关系。或者,如果你执行objectB.objectA = nil,它也会从objectA的集合中删除objectB。