Objective c 以编程方式添加到核心数据实体(如IB绑定';添加';)

Objective c 以编程方式添加到核心数据实体(如IB绑定';添加';),objective-c,xcode,macos,nsarraycontroller,nsmanagedobjectcontext,Objective C,Xcode,Macos,Nsarraycontroller,Nsmanagedobjectcontext,我有一个核心数据模型,其中包含一个名为clients的实体,该实体由以下属性组成: 如果我单击“添加客户端””按钮并打开以下窗口: 以编程方式同时为每个属性添加新条目(与绑定IB“add”按钮与NSArrayController的工作方式类似)并将其显示在“添加客户端”窗口的文本字段中进行编辑的正确方法是什么?“添加客户端”窗口中的文本字段绑定到客户端实体的相应属性(仍然缺少一个或两个属性)。我目前掌握的代码是: - (IBAction)addNewClient:(id)sender; {

我有一个核心数据模型,其中包含一个名为clients的实体,该实体由以下属性组成:

如果我单击“添加客户端””按钮并打开以下窗口:

以编程方式同时为每个属性添加新条目(与绑定IB“add”按钮与
NSArrayController
的工作方式类似)并将其显示在“添加客户端”窗口的文本字段中进行编辑的正确方法是什么?“添加客户端”窗口中的文本字段绑定到客户端实体的相应属性(仍然缺少一个或两个属性)。我目前掌握的代码是:

- (IBAction)addNewClient:(id)sender;
{
    [addClientsWindow makeKeyAndOrderFront:self];
    //NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext];
    //[clientsMoc addObject:[clientsMoc newObject]];
    [clientsController addObject:[clientsController newObject]];
}
它适用于此项目中的其他实体,但不适用于客户机,因为我添加了关系类型(它在控制台中抛出KVC错误)。我想这是因为我正在处理
NSArrayController
而不是
NSManagedObjectContext
,但是注释掉的代码对我不起作用。这个尝试是从一个问题开始的,因为这个问题已经改变了很多,我正在努力实现给出的建议。我真的需要一个好的起点,苹果开发文档并没有帮助我理解这一点

提前谢谢

----更新---

我在这个问题上解释得不好吗?我是新来的,但我想可能会有人试图找到答案。出于某种原因,在谷歌上搜索这个很难。我可能通过一个无关的谷歌搜索找到了类似的解决方案。幸运的是,它与此相关

- (IBAction)addNewClient:(id)sender;
{
    [addClientsWindow makeKeyAndOrderFront:self];
    NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext];
    NSManagedObject *clientsEntity = [NSEntityDescription
                                     insertNewObjectForEntityForName:@"Clients" 
                                       inManagedObjectContext:clientsMoc];
    [clientsEntity setValue:@"name" forKey:@"clientName"];
    [clientsEntity setValue:@"company" forKey:@"clientCompany"];
    [clientsEntity setValue:@"address" forKey:@"clientAddress"];
    [clientsEntity setValue:@"11111111" forKey:@"clientLandline"];
    [clientsEntity setValue:@"email@gmail.com" forKey:@"clientEmail"];
}

这为客户实体创造了一个全新的条目——我没有意识到我必须为每一处房产做一个单独的估价。KVC错误仍然存在,我根本找不到解决方案。苹果开发文档在这方面确实很有帮助,在“启动时要传递的参数”列表中添加了
nsbindingdebugloglevel1
,让我详细了解了问题的具体原因。这是一个到未更新的
NSTableColumn
的旧绑定。

这可能是我想要的解决方案:

- (IBAction)addNewClient:(id)sender;
{
    [addClientsWindow makeKeyAndOrderFront:self];
    NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext];
    NSManagedObject *clientsEntity = [NSEntityDescription
                                     insertNewObjectForEntityForName:@"Clients" 
                                       inManagedObjectContext:clientsMoc];
    [clientsEntity setValue:@"name" forKey:@"clientName"];
    [clientsEntity setValue:@"company" forKey:@"clientCompany"];
    [clientsEntity setValue:@"address" forKey:@"clientAddress"];
    [clientsEntity setValue:@"11111111" forKey:@"clientLandline"];
    [clientsEntity setValue:@"email@gmail.com" forKey:@"clientEmail"];
}
这为客户实体创造了一个全新的条目——我没有意识到我必须为每一处房产做一个单独的估价。KVC错误仍然存在,我根本找不到解决方案。苹果开发文档在这方面确实很有帮助,在“启动时要传递的参数”列表中添加了
nsbindingdebugloglevel1
,让我详细了解了问题的具体原因。这是一个到未更新的
NSTableColumn
的旧绑定