NSManagedObject 已删除,但关系未更新

Posted

技术标签:

【中文标题】NSManagedObject 已删除,但关系未更新【英文标题】:NSManagedObject deleted but relationship doesnt get updated 【发布时间】:2013-04-06 11:11:15 【问题描述】:

我有这样的数据结构

A--->>B(A与B有一对多关系,关系名称为图像)

我获取“A”对象,然后在我的应用程序中使用“B”对象。在一次操作中,我从 .一切都很好,B 对象被删除,我可以立即在我的应用程序中看到效果,因为其中包含的数据不会显示。但是发生的情况是 A 对象仍然返回我使用 NSLog(@"%d",[a.relation count]) 确认的 B 对象的先前计数。

即如果最初有 6 个 B 对象,那么在删除 2 个对象后仍然显示 6 个对象,应该是 4 个。

【问题讨论】:

【参考方案1】:

您必须定义一个从“B”到“A”的反向关系,并将此关系的“删除规则”设置为“无效”。

但是,“A”对象仅在您保存托管对象上下文或为上下文调用 processPendingChanges 时才会更新。

【讨论】:

以上是关于NSManagedObject 已删除,但关系未更新的主要内容,如果未能解决你的问题,请参考以下文章

自定义 NSManagedObject 类从 NSOrderedSet 添加/删除对象

如何强制重新获取 NSManagedObject 的关系集

NSManagedObject 中未保存的 NSSet 成员是不是会在保存时保留已删除的成员?

存储对已删除 NSManagedObject 的引用的局部变量会发生啥

从 NSManagedObject deinit 的上下文中删除关系和对象

如何在核心数据 NSManagedObject 关系的 NSSet 中添加或删除项目时触发通知?