【发布时间】:2012-03-31 06:24:20
【问题描述】:
我对 Core Data 中关系的删除规则如何工作有点模糊,至少超出了文档中描述的简单案例。
大多数情况,以及我在这里看到的大多数问题的答案,都使用了一个模型,其中一对多关系左侧的对象“拥有”右侧的对象:例如一个Person 有PhoneNumbers,如果你删除这个人,你会删除他们所有的相关号码。在这种情况下,解决方案很明确:如果您像这样设置关系,Core Data 将为您处理一切:
Person --(cascade)-->> PhoneNumber
PhoneNumber --(nullify)--> Person
我感兴趣的是相反的:“所有权”颠倒的一对多关系。例如,我可能会扩展 CoreDataBooks 示例代码以添加一个 Author 实体,以便在一个地方收集有关唯一作者的所有信息。 Book 有一个作者,但一个作者有很多书……但我们不关心我们不为其列出书籍的作者。因此,不应允许删除其books 关系为非空的Author,并删除最后一个引用特定Author 的Book 应删除该Author。
我可以想象几种手动执行此操作的方法...我不确定的是:
- Core Data 是否有办法至少自动执行其中一些操作,例如关系删除规则?
- 是否有一种“规范”的首选方法来处理这种情况?
【问题讨论】:
标签: objective-c core-data