没有核心数据自动处理反向关系

Wan*_*ang 2 inverse one-to-many relationship nsmanagedobject ios

我有3个这样的实体:

对不起,这个图片有一个问题,即

对不起,这个图片有一个问题,即"周"实体的"日"关系应该是多个,关系结束时应该有2个箭头

现在这里有两个问题.

1.对于任何Day-Class(NSManagedObject的自定义子类)对象,在我关注它之间的关系之后:

Week* aWeek;
Day *aDay;
[aWeek addDayObject:aDay];
Run Code Online (Sandbox Code Playgroud)

然后,我可以真正找到通过周实体的关系"日",

但相反,我发现日间对象"aDay"的关系"thisWeek"仍为零.

我听说你创建了NSMangedObject的子类之后,就得到了类似的方法

- (void)addXXXObject:(xxx)xxx
Run Code Online (Sandbox Code Playgroud)

帮助您处理多对多关系,并自动处理反向关系.

但这里似乎没有.所以我必须自己处理反向关系,

或者如果核心数据确实提供了,我如何使其自动添加对象关系?

第2位.假设有许多"日",其中一个"周",由他们的关系相连,

我想要的是,每当用户删除其中一天时,我们会检查周是否仍有一些天关系,

如果是,只要让用户删除该日,

如果没有,我们也删除"周"对象.

那么我应该使用多少关系的删除规则呢?

我对这些规则不太清楚..

谢谢!

Chr*_*orr 5

只要您在两个实体中定义它,CoreData实际上应该处理反向关系.看到这里.

我会使用nullify删除规则为day-> week关系,并在一周 - >日级联.
删除周时,与其关联的所有日期也将被删除.
当您删除某一天时,它将从本周的日期中删除.当它没有天时,你不能自动删除它.但是,您可以观察一周的日期并删除self if self.days.count == 0.