从我一直在阅读的内容来看,对于像这样的关系department <->> employee
,我无法设置一个简单的删除规则,如果一个部门中的最后一个员工被删除,就会导致部门被删除。相反,我必须编写这条规则。
我想我可能会使用键值观察,以及didChangeValueForKey:
部门实体的方法。我想以 DRY 的方式将此删除操作集中到一个地方。
我不希望部门实体可以删除自己,如下所示:
- (void) didChangeValueForKey:key {
if (![key isEqualToString @"employee") return;
if (self.employee == NULL)
[self deleteAndSave]; // a category method
}
所以我可能会发布通知,而不是
- (void) didChangeValueForKey:key {
if (![key isEqualToString @"employee") return;
if (self.employee == NULL)
[[NSNotificationCenter defaultCenter] postNotificationName:@"empDelete" object:self];
}
然后在我处理托管对象上下文之类的对象中进行删除。
我是否错过了一些可以让这更容易的东西?