Core data 如何在核心数据中创建和获取关系记录

Core data 如何在核心数据中创建和获取关系记录,core-data,relationship,fetch,Core Data,Relationship,Fetch,总新手问题现在。。。我只想说,我已经找到了一个完全不切实际的解释,但还没有找到足够“愚蠢”的解释。问题是 我创建了一个核心数据堆栈,其中有一个名为“Client”的实体和一个名为“Car”的实体。这是一种一对多的关系 到目前为止,我已经使用苹果教程中的代码成功创建并获取了客户列表。一旦我选择了一个客户机,我就会推送一个新的tableViewController,它应该列出所选客户机的汽车 第一个问题 我习惯于sql风格的数据库编程,如果我想向客户机添加一个car,我只需向“car”记录添加一个“

总新手问题现在。。。我只想说,我已经找到了一个完全不切实际的解释,但还没有找到足够“愚蠢”的解释。问题是

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

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

第一个问题

我习惯于sql风格的数据库编程,如果我想向客户机添加一个car,我只需向“car”记录添加一个“ClientID”标记,从而提供与特定客户机的关系。如何在核心数据中实现等效?我从阅读中了解到,向指向其他实体的点添加属性是不必要的-核心数据为您维护这种关系,而不需要实体中的其他属性

第二个问题

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

我意识到这有多傻,但我在任何地方都找不到白痴指南


非常感谢任何帮助/代码。好的,我已经回答了我自己的问题。对于那些找到我的问题并想知道答案的人来说,这是非常简单的

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

newCar.client = client;
NSSet *cars = client.cars;
[self setCarsArray:[cars allObjects]];
这会将“汽车”记录上的“客户”关系设置为相关客户

第二,我认为如果你有一个客户,需要找到他们的车,你需要一个新的打车。但事实并非如此!只需使用以下代码行

newCar.client = client;
NSSet *cars = client.cars;
[self setCarsArray:[cars allObjects]];
第一行使用“client.cars”跟随对象图确定该客户机拥有的汽车,并将其填充到NSSet中。然后,第二行填充NSArray,该NSArray在当前viewcontroller中声明,可用于显示

排序