【问题标题】:CoreData join entities for sortingCoreData 连接实体进行排序
【发布时间】:2012-06-11 11:41:56
【问题描述】:

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

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

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

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

编辑 - 解决方案:

【问题讨论】:

    标签: iphone ios sorting core-data entity


    【解决方案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 次以使其更加连贯。

    【讨论】:

    • 好的,谢谢。但是我还有另一个担心:到目前为止,我已经从 A 中获得了 C 的所有项目:[C.a allObjects]。但是现在我该怎么做呢?
    • 谁能帮我解决这个问题?
    • 抓取所有B项,迭代时通过b.c得到对应的C。
    • 是的,但是遍历所有项目并不是一个好主意。我想只有那些用于确切的 C...?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 2012-01-05
    相关资源
    最近更新 更多