CoreData:仅当项目所有子项目都被删除时,级联删除规则

Posted

技术标签:

【中文标题】CoreData:仅当项目所有子项目都被删除时,级联删除规则【英文标题】:CoreData: Cascade delete rule only if item all child items deleted 【发布时间】:2014-02-21 02:43:19 【问题描述】:

我有一对多的关系 A --> B。一旦所有的 B 都被删除,我想删除 A。我可以找到一种手动执行此操作的方法,但我想知道是否有某种方法可以自动执行此操作(这意味着每次我删除 B 时,它的 A 对象可能会根据它引用的 B 的数量而被删除)。我想知道是否有一些删除规则和关系基数验证的组合来促进这一点。这将是一个“条件级联”删除规则。

【问题讨论】:

【参考方案1】:

据我所知,核心数据中的删除规则只有四种,都不符合你的要求。

【讨论】:

【参考方案2】:

最后我在 B 中使用了 prepareForDeletion 来检查关联的 A 是否只有 1 个 B(被删除的那个)。如果是这样,我也删除 A 。 在这里找到了答案: Link

【讨论】:

以上是关于CoreData:仅当项目所有子项目都被删除时,级联删除规则的主要内容,如果未能解决你的问题,请参考以下文章

Restkit 从核心数据中删除项目

以编程方式在运行时删除或添加属性到CoreData

sql 多对多查询结果仅当仅匹配且完全匹配数组中的所有项目时

CoreData 多线程删除

AVQueuePlayer - 在缓存项目时保持活动状态

Coredata 手动迁移