Core Data 是苹果原生自带的数据库管理框架,功能强大但使用起来也很复杂。
在配置 Core Data 的 relationship 时有一个属性叫 Delete Rule。Delete Rule 表明了数据对象在被删除时,和他有 relationship 的其他数据对象的处理规则。
Deny
除非有 relationship 的其他数据对象全部被删除,否则该数据对象将无法被删除。
你在撤销一个事业部门前,需要先将部门员工全部 fire。
Cascade
当你删除一个数据对象时,有 relationship 的其他数据对象将一并被自动删除。
你撤销了一个事业部门,该部门的员工在同一时间一并被 fire。
Nullify
当你删除一个数据对象时,有 relationship 的其他数据对象的 relationship 指针将被设置为 null。
只有当 relationship 是 Optional 时,该设置才是有意义的。否则,你必须在删除前,为有 relationship 的数据对象手动设置新的 relationship。
No Action
正如其名。在删除时,不做对 relationship 任何操作。
注意 ⚠️
当你使用这种删除规则时,所有的 relationship 都需要你手动管理。