我有同样的目标,你显然有(只要最后引用的一个被删除删除乙)。我花了比预期更长的时间才得到这个权利。特别是因为
- 当时一个准备删除,在乙的一对多关系可能尚未更新,所以你不能只算一个在乙引用。
- 请将isDeleted上一个似乎在
-prepareForDeletion
这里已经设置就是为我工作,如果任何人的兴趣(我将使用部 < - >>员工因为它更容易阅读):
在雇员:
- (void)prepareForDeletion {
// Delete our department if we we're the last employee associated with it.
Department *department = self.department;
if (department && (department.isDeleted == NO)) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"isDeleted == NO"];
NSSet *employees = [department.employees filteredSetUsingPredicate:predicate];
if ([employees count] == 0) {
[self.managedObjectContext deleteObject:department];
}
}
}
其他人建议将此逻辑放入-willSave
的部门。我更喜欢上述解决方案,因为在某些情况下(例如在手动存储迁移或数据导入期间),我实际上可能想要保存空白部门。
只是一个建议...由于文档不说,这是没有必要的消息超级,它可能是一个好主意,做所以:[super prepareForDeletion] – 2016-02-05 15:29:36