例如,假设我有以下实体:
一个人可以拥有许多房屋和汽车,而汽车和房屋只能拥有一个房主。
现在考虑以下情况:
当然我可以在保存之前手动删除这些对象,但是我想知道我是否可以提出一个通用的解决方案,考虑来自特定对象的对象可达性。
基本上是(伪代码)的一些东西:
for (NSManagedObject *obj in context.registeredObjects) {
if (Person does not reach obj in any relationship ) {
[context deleteObject:obj];
}
}
通过广义解决方案,我的意思是不需要知道关系和特定实体(不要为每个房子和汽车迭代一个人的房屋和汽车关系)。
答案 0 :(得分:1)
您可以制作house
&与car
的{{1}}关系是非可选的,因此对于没有所有者的对象,保存将失败。
您可以通过继承和覆盖person
方法直接在NSManagedObject
级别处理验证问题。
检查该方法中的关系,如果它返回nil,您知道可以删除该对象。