2

我有 3 个这样的实体:

抱歉,这张图片有问题

抱歉,这张图片有一个问题,“周”实体的“日”关系应该是对多的,关系末尾应该有 2 个箭头

现在有2个问题。

第一个。对于任何 Day-Class(NSManagedObject 的自定义子类)对象,在我处理好它的关系之后,例如:

Week* aWeek;
Day *aDay;
[aWeek addDayObject:aDay];

那么我可以通过周实体的关系“天”真正找到天,

但反过来,我发现 Day 对象“aDay”的关系“thisWeek”仍然为零。

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

- (void)addXXXObject:(xxx)xxx

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

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

或者如果核心数据确实提供了,我怎样才能让它自动在反向关系上添加对象?

第二。假设有许多“日”和一个“周”,通过它们的关系连接,

我想要的是,每次用户删除某一天时,我们都会检查这周是否还有一些天数,

如果是这样,就让用户删除那一天,

如果没有,我们也删除“Week”对象。

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

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

谢谢!

4

1 回答 1

5

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

我会为 day->week 关系使用无效删除规则,并为 week->day 使用级联
当您删除一周时,与之关联的所有天也将被删除。
当您删除一天时,它将从一周的天数中删除。当一周没有天时,您无法自动删除它。但是,您可以观察星期几并删除self if self.days.count == 0

于 2012-02-01T13:27:00.533 回答