核心数据 - 取消删除规则

时间:2012-05-14 20:36:28

标签: objective-c core-data null

我在实体组和联系人之间存在多对多关系。一个组可以有多个联系人,一个联系人可以存在于多个组中。

现在如果我要删除一个组,我应该如何处理它所拥有的联系人的所有引用?

我认为有两种选择:使用nullify规则,对于拥有该组的联系人,将删除的组引用设置为nil。但这种情况引入了微观管理问题。然后,如果任何组都是零,我必须在每次列出联系人组时进行检查。

所以对我来说更优雅的解决方案是,当一个组被删除时,我会从联系人对象中完全删除组引用(?),这样它就不会包含任何组的nil值。这可能吗?

1 个答案:

答案 0 :(得分:4)

  

但这种情况引入了微观管理问题。然后我必须   每次我列出联系人组时检查是否有任何组   为零。

没有。请参阅this answersimilar question。如果您将Groups->> Contacts和Contacts->> Groups关系的删除规则设置为nullify,则:

  • 删除联系人会从包含该联系人的任何群组中删除该联系人

  • 删除群组会从属于它的任何联系人中删除该群组

Foundation框架中的集合对象(NSArray,NSSet等)从不具有“nil值”。 可以将NSNull单例存储为集合中的值,但这不是nullify删除规则的作用。

听起来,无效规则适用于您的情况中的两种关系。您唯一需要关注的是删除属于给定组的所有联系人时应该发生什么,反之亦然。不属于任何组的联系人是有道理的,但对于不包含联系人的组会发生什么?如果没有成员的群组对您的应用程序没有任何意义,那么您将不得不处理该案例。