CoreData在保存问题后消失了关系

时间:2010-11-30 08:34:35

标签: macos core-data entity-relationship

我的CoreData模型中存在多对多的关系而没有反向关系,导致一些奇怪的行为。

例如:类型A的实体与类型B的实体具有多对多的关系。从B到A之间没有反向关系。现在,当我将类型A的对象与类型B的某些对象连接时,没有问题。但是在保存整个管理对象上下文并重新启动应用程序之后,除了一个对象(仍然存在关系)之外,对象之间的连接不再存在。可能会发生类型A的不同对象与B类型的特定实体之间的关系 - 因此它们共享同一个对象。

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

最简单的解释是,您实际上并没有设置多对多关系,而是一对一。你只需保存你设置的最后一个B.我会在保存之前立即记录关系,以确认是否只设置了一个B.

或者,在没有倒数关系的情况下,对象可以从图中消失而不产生错误。如果B与A没有关系,则意味着B没有观察到A并且不关心它发生了什么。您可能在不知情的情况下改变图表。在这种情况下,删除规则也会导致奇怪的行为。

在极少数情况下,您应该只使用没有反转的关系。反向关系有助于保持对象图的完整性,并防止孤立或消失的对象。