我有两个实体,一个叫Group
,另一个叫Contact
。他们有多对多的关系(至少有一个)。因此,至少一个联系人可以属于一个或多个组,并且至少一个组可以属于一个或多个联系人。
Contact <<-->> Group
现在,当我想要更新我的视图控制器中的组时,我的子类NSManagedObject Group
可用。 (@property (nonatomic, strong) Group *selectedGroup;
)
假设最初的群组与3个联系人有关系,在我更新该群组后,它应该有2个联系人(1个原始联系人和1个新联系人)。
Before update After Update
Group Group
----- -----
ContactA ContactA
ContactB ContactD
ContactC
ContactA
应保持完整。
这意味着应该从组中删除ContactB
关系(也应该从联系人实体中删除,因为没有其他组与ContactB
有关系)
ContactC
应该被创建。
我该如何处理这种情况?我无法让它发挥作用。
答案 0 :(得分:1)
您是否为核心数据模型生成了模型类?如果是这样,您应该在Group类中创建如下所示的CoreDataGeneratedAccessors:
- (void)addContactObject:(Contact *)value;
- (void)removeContactObject:(Contact *)value;
然后您可以执行以下操作:
Group *group = ...
Contact *contactB = ...
Contact *contactC = ...
Contact *contactD = ...
[group addContactObject:contactD];
[group removeContactObject:contactB];
[group removeContactObject:contactC];
//save your context