CoreData连接实体进行排序

时间:2012-06-11 11:41:56

标签: iphone ios sorting core-data entity

我在使用CoreData排序“join”实体时遇到问题。 我做了这样的模型: enter image description here

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

enter image description here

所以现在结果可以按实体B中的字段日期排序,实体B是实体A和B之间的“连接”。

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

编辑 - 解决方案: enter image description here

1 个答案:

答案 0 :(得分: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次编辑,以使其更加合理。