我在Core Data中有一对多的关系。例如,A-> B,其中A是部门,B是雇员。一个部门可以有很多员工,一个员工只能有一个部门。
我设置了A->(casacade) - > B,所以如果删除A,所有B都将被删除。
相反,我也可以删除B.在我删除最后一个B的情况下,是否有删除规则以便自动删除A?或者我必须以编程方式删除A?我应该注意什么?
答案 0 :(得分:1)
在我们的图书https://www.objc.io/books/core-data/的示例应用中,我们正好展示了这个用例。
基本上你要做的是覆盖prepareForDeletion
(删除对象时会调用它)。在那里,您要检查未删除的数组或对象组是否为空:
此处某个国家/地区public override func prepareForDeletion() {
guard let c = continent else { return }
if c.countries.filter({ !$0.deleted }).isEmpty {
managedObjectContext?.deleteObject(c)
}
}
检查其(父级)大陆是否还有未删除的国家/地区:
FIXME