我的模型有一个实体“过滤器”和一个实体“颜色”。我想在它们之间建立两个“多对多”关系:“背景”和“前景”。(即每个“过滤器”包含一组背景颜色和一组前景色,所有类型均为“颜色”)。
我有两个问题。首先,当我建立关系时,“颜色”的倒数只能有一个值(我猜这意味着我不能做我想做的事)。其次,我不知道如何创建一个谓词来仅获取背景或仅获取前景。我假设以下将返回所有合并在一起的(如果它有效的话):
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Color"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"filter == %@", self];
我将通过将 Color 转换为两个 Foreground 和 Background 实体来解决这个问题,但我不想在不理解为什么单个实体不起作用的情况下这样做。我在这里错过了什么吗?
注意:这对我来说显然不直观。我再次遇到了这个确切的问题,但是这次我没有使用谓词,所以我没有立即找到问题。我有一个非常相似的设置,但是当我尝试删除一个孩子时,它最初会消失,但是当我重新启动我的应用程序时,它会多次出现。我带走的孩子越多,我得到的就越多。我最终注意到两个关系数组中都有相同的孩子,当我查看模型的图形版本时,只有一个关系有一个与孩子相连的箭头。最后,我记得我以前遇到过这个问题!我不太明白发生了什么,但显然两个子“数组”以一种奇怪的方式合并在一起。