核心数据视图控制器绑定问题

时间:2011-05-13 05:04:56

标签: objective-c cocoa core-data binding viewcontroller

我有一个基于文档的应用程序,其中包含一个包含表,数组控制器和添加/删除按钮的视图控制器。我已将托管对象上下文绑定到文件所有者(myViewController)并为myMOC建立属性/合成命令。

我的问题是如何在视图控制器中设置托管对象上下文。我写了......

NSWindow *myWindow = [[self view] window];
NSWindowController *myWindowController = [myWindow windowController];
id myDoc = [myWindowController document];

self.myMOC = [myDoc managedObjectContext];

但是,从awakeFromNibinit内调用,会为myWindow生成nil值。任何帮助表示赞赏。谢谢

1 个答案:

答案 0 :(得分:0)

我假设myView在你加载它时是自己的nib然后你将视图添加到由于myViewController是文件所有者而在不同的nib中创建的窗口。那是对的吗?如果是这样,[[self view] window]应返回nil,因为当调用awakeFromNib或init时,视图尚未添加到窗口中。将myView添加到窗口后,您需要运行myMOC设置代码。尝试将上面的代码分解为-setupMOC方法,并在将视图添加到窗口或超级视图后调用它。如果你马上就做了,你也可以在awakeFromNib中调用[self performSelector:@selector(setupMOC)withObject:nil afterDelay:0.0]。