0

我有一个与 ObjectB 具有一对多关系的 ObjectA。ObjectB 与 ObjectA 具有逆一对一关系。一切似乎都很顺利,直到我意识到调用[objectA.objectBSet removeAllObjects]破坏了 ObjectB 实例的反向关系,这些实例位于 Set 中。objectA.objectBSet只是NSMutableOrderedSet我(认为)我从mogenerator工具中获得的 objectBs(如果这有什么不同的话)。

这是可能的还是我做错了什么?是不是简单地从其父集合中删除一个对象就可以自动从 CoreData 影响其反向关系的值?

非常感谢

4

2 回答 2

1

这就是它应该如何工作的方式。如果两个关系是相反的,那么它们对于每个对象都必须彼此一致。如果您告诉 anObjectA删除与 的实例的所有关系ObjectB,那么这些ObjectB实例也将删除它们与 that 的关系ObjectA。这就是反向关系的工作原理。如果ObjectB实例仍然声称与ObjectA实例相关,则反向关系将处于不一致状态。

如果由于某种原因这不是您想要的,请使用 和 之间的关系ObjectAObjectB不是彼此相反的关系。

于 2013-05-23T15:53:12.263 回答
0

是的,当您从 Set 中删除对象时,CoreData 将为您取消反向关系。或者如果你做 objectB.objectA = nil 它也会从 objectA 的集合中删除 objectB。

于 2013-05-23T15:47:23.560 回答