1

我有很多悬空的 ManagedObjects 并且想知道为什么。

它可能与反向关系有关。核心数据反向关系是在初始添加过程中自动创建的吗?不是最终的删除。

我在NSManagedObject

- (void)addChildObject:(Child *)value
  • 这是那些神奇的逆集的地方*

尽管如此,几乎所有的对象在删除后仍然存在。我使用级联!在另一个类似的问题上,Deny 并没有按照建议阻止删除。

需要明确的是,没有NSOrderedSet在使用中。只是标准NSSets

更新:可能不是反向关系问题。似乎从直接 NSArrayControllers 中删除的对象被删除了——但没有从NSArrayControllers通过连接的对象中删除Content Set或删除Content Object。IE。只有那些managedObjectContext设置为文件所有者的人...

4

1 回答 1

3

是的。律'打印。

removeObject:从接收者的内容集合中移除对象。

  • (void)removeObject:(id)object

如果您使用的是 Core Data,此方法的确切语义会因阵列控制器的设置而异。如果接收者的内容是自动获取的,则被管理对象上下文将删除的对象标记为删除(并因此从对象图中删除)。但是,如果接收者的 contentSet 绑定到关系,removeObject: 默认情况下只从关系中删除对象(而不是从对象图中)。但是,您可以为 contentSet 绑定设置“删除时删除对象”选项,在这种情况下,对象被标记为删除以及从关系中删除。

于 2013-06-21T06:50:31.973 回答