从NSArrayController中删除的ManagedObject未删除。

时间:2013-06-20 23:59:07

标签: core-data nsmanagedobject

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

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

我在NSManagedObject

中看到了生成的'mutator'方法
- (void)addChildObject:(Child *)value
  • 这是魔法逆集的地方*

尽管如此,删除后几乎所有对象都会保留。我使用Cascade! 在另一个类似的问题上,Deny没有按照建议阻止删除。

要清楚,没有使用NSOrderedSet。只是标准的NSSets

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

的人

1 个答案:

答案 0 :(得分:3)

YES。小'​​打印。

  

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

     
      
  • (无效)的removeObject:(ID)对象
  •   
     

如果您使用的是Core Data,则此方法的确切语义会有所不同   取决于阵列控制器的设置。如果接收者的   内容自动获取,删除的对象被标记为   通过托管对象上下文删除(从而删除   对象图)。 但是,如果接收者的contentSet绑定到a   relationship,removeObject:默认情况下仅从中删除对象   关系(不是来自对象图)。你可以设置   “删除删除时的对象”选项为contentSet绑定,其中   案例对象被标记为删除以及从中删除   关系。