【发布时间】:2013-08-09 18:09:37
【问题描述】:
我有一个新手问题,我试图在网上找到答案,但没有成功。任务很简单:我想创建一个基于核心数据文档的应用程序,但要更改一些标签对象中的值。使用界面生成器,我可以构建核心数据模型并使用数组控制器、表等填充它,而无需编写任何代码。到现在为止还挺好。我的测试示例是使用具有长度和宽度属性的 Box 实体构建核心数据模型。我想要一个标签来显示该区域,即任何几何挑战的长度*宽度:)。
所以在浏览完之后,我决定我需要创建一个 NSWindowController 子类,并在选择表中的框时使用它来更新标签。曾经尝试过,但失败了。在我将标签连接到窗口控制器之前,我遇到了一个问题。在模板 cmets 之后,我将其添加到 Document.m:
- (void)makeWindowControllers
{
NSLog(@"Adding custom Window Controller");
MyWindowController* myWindowController = [[MyWindowController alloc] init];
[self addWindowController:myWindowController];
}
还将这个添加到模板 MyWindowController.m:
- (id)init
{
self = [super initWithWindowNibName:@"MyWindowController"];
return self;
}
窗口控制器有自己的 NIB 文件,来自 Interface builder,我在其中放置了表格和标签等。文件所有者设置为 MyWindowController。可能忘记了其他事情,但这是我现在记得的。
日志消息在启动时出现,但是在窗口出现之前我得到一个异常“这个类不符合键 managedObjectContext 的键值编码”。我猜我没有正确连接到文档类的窗口控制器?我的另一个想法是数组控制器位于窗口控制器 nib 中,而不是文档 nib 中,所以它可能在错误的位置寻找 managedObjectContext?
【问题讨论】:
标签: core-data subclass nswindowcontroller