【问题标题】:How to create and fetch relational records in core data如何在核心数据中创建和获取关系记录
【发布时间】:2012-02-18 13:51:09
【问题描述】:

现在总的新手问题......我只想说,我已经搜索了一个完全点头的解释,但没有找到任何足够“愚蠢”的东西。问题是……

我创建了一个核心数据堆栈,其中有一个名为“Client”的实体和一个名为“Car”的实体。这是一对多的关系。

到目前为止,我已经使用苹果教程中的代码成功创建并获取了客户端列表。一旦我选择了一个客户端,我就会推送一个新的 tableViewController,它应该列出所选客户端的 Cars。

第一个问题...

我习惯于使用 sql 风格的数据库编程,如果我想将汽车添加到客户端,我只需将“ClientID”标签添加到“Car”记录,从而提供与特定客户端的关系。我如何在核心数据中做同样的事情?我的阅读理解是添加属性以指向其他实体不是必需的 - 核心数据为您维护这种关系,而不需要实体中的其他属性。

第二个问题...

当我创建了一个“汽车”实体并将其成功链接到一个“客户”时。如何创建一个仅检索该客户汽车的提取。我可以从苹果更改代码以获取所有汽车,但我不知道如何获取与给定客户端关联的汽车。从我的阅读来看,我认为我需要使用谓词,但苹果的谓词文档是独立的,并没有就如何将它与核心数据一起使用给出明确的指导

我知道这是多么的点头,但我在任何地方都找不到白痴指南......

非常感谢任何帮助/代码示例。

【问题讨论】:

    标签: core-data relationship fetch


    【解决方案1】:

    好的,我已经回答了我自己的问题。对于那些找到我的问题并想知道答案的人来说,这非常简单......

    首先,创建“汽车”并将其与“客户”相关联。首先像往常一样创建一个“汽车”,然后简单地添加这行代码......

    newCar.client = client;
    

    这会将“汽车”记录上的“客户”关系设置为相关客户。

    其次,我曾认为,如果您有客户并且需要找到他们的汽车,您将需要新的取车服务。但并非如此!只需使用以下代码行...

    NSSet *cars = client.cars;
    [self setCarsArray:[cars allObjects]];
    

    第一行使用“client.cars” o 按照对象图确定该客户端拥有的汽车并将它们填充到 NSSet 中。然后第二行填充一个在当前视图控制器中声明的 NSArray,可用于显示目的。

    排序!!

    【讨论】:

      猜你喜欢
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多