0

我在使用 CoreData 对“连接”实体进行排序时遇到问题。我做了一个这样的模型: 在此处输入图像描述

逻辑是这样的:实体 A 有一个项目列表。用户可以从 A 中选择一个或多个项目并将它们放在实体 C 中。这很好。但是结果集变得未排序(逻辑上)。所以我实现了一个像这样的“加入”实体 B:

在此处输入图像描述

因此,现在可以按实体 B 中的字段日期对结果进行排序,这是实体 A 和 B 之间的一种“连接”。

但在这里我感到困惑。当我在 B 中插入新项目时,是否需要将它们也添加到 C 和 A 中,或者它们会自动与关系一起插入?

编辑- 解决方案: 在此处输入图像描述

4

1 回答 1

1

当您调用 CoreData 生成的addXXXItemsObject方法之一,或设置一个关系属性(如b.c = myCInstance;)时,将为您设置一个关系。

因此,您可以通过多种不同的方式设置您的 B 对象。首先建立c <--> b关系:

b.c = instanceOfC;
// or
[c addBItemsObject:b];

然后是b <--> a关系:

b.a = instanceOfA;
// or
[a addBItemsObject:b];

最简单的可能只是为每个使用第一个版本:

    b.c = instanceOfC;
    b.a = instanceOfA;

此外,查看您的屏幕截图,您似乎需要像多对多一样结束您的关系。

编辑:编辑了大约 5 次以使其更加连贯。

于 2012-06-11T11:49:41.180 回答