Cocoa – 核心数据对象图
Posted
技术标签:
【中文标题】Cocoa – 核心数据对象图【英文标题】:Cocoa – Core Data object graph 【发布时间】:2012-02-06 11:12:03 【问题描述】:如何处理以下对象的删除?我的删除规则应该是什么样的?
这是我的对象图的样子:
老板
Boss-Department 是多对多的关系 如果 Boss 被删除, 属于那个老板的部门应该不被删除(但是 部门与本Boss的关系应删除)部门
Department-Employee 具有多对多关系 部门-老板是多对多关系 如果一个部门 被删除,属于该部门的员工应该是 删除如果他们与任何其他部门没有关系员工
Employee-Department 是多对多的关系 永远不会直接删除员工(仅通过删除部门)。哦,幸福的生活!【问题讨论】:
【参考方案1】:在这种情况下,您的对象的删除规则应该这样处理
老板-部门->无效
部门-员工 -> 拒绝
部门老板 -> 无效
这是 Apple 对删除规则的解释
拒绝:如果关系目的地至少有一个对象, 则无法删除源对象。例如,如果你想 删除一个部门,您必须确保该部门的所有员工 部门首先被转移到其他地方(或被解雇!)否则 部门不能删除。
Nullify:设置反比关系 目的地的对象为空。例如,如果您删除一个 部门,将所有当前成员的部门设置为空。 这仅在员工的部门关系时才有意义 是可选的,或者如果您确保为每个 在下一次保存操作之前的员工。
级联:删除 关系目的地的对象。例如,如果您 删除一个部门,解雇该部门的所有员工 同时。
No Action: 对目的地的对象不做任何事情 关系。例如,如果您删除一个部门,请保留所有 员工本来的样子,即使他们仍然相信自己属于 那个部门。
欲了解更多信息,请查看CoreData Programming Guide
【讨论】:
以上是关于Cocoa – 核心数据对象图的主要内容,如果未能解决你的问题,请参考以下文章
iPhone RestKit 是不是可以将核心数据对象图转换为 JSON?
捕获所有 Objective-C 消息并获取 Cocoa 运行时中的对象列表