我有一个核心数据模型,其中包含一个名为clients的实体,该实体由以下属性组成:
如果我单击“添加客户端”按钮并打开以下窗口:
以编程方式同时为每个属性添加新条目的正确方法是什么(与绑定的 IB“添加”按钮如何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 错误仍在继续,我根本找不到解决方案。Apple 开发文档实际上对此很有帮助,这里,并且添加NSBindingDebugLogLevel 1
到“启动时要传递的参数”列表中可以让我详细了解导致问题的确切原因。这是一个NSTableColumn
尚未更新的旧绑定。