我有同樣的目標,你顯然有(只要最後引用的一個被刪除刪除乙)。我花了比預期更長的時間纔得到這個權利。特別是因爲
- 當時一個準備刪除,在乙的一對多關係可能尚未更新,所以你不能只算一個在乙引用。
- 請將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