我有一个基于文档的应用程序,其中包含一个包含表,数组控制器和添加/删除按钮的视图控制器。我已将托管对象上下文绑定到文件所有者(myViewController)并为myMOC建立属性/合成命令。
我的问题是如何在视图控制器中设置托管对象上下文。我写了......
NSWindow *myWindow = [[self view] window];
NSWindowController *myWindowController = [myWindow windowController];
id myDoc = [myWindowController document];
self.myMOC = [myDoc managedObjectContext];
但是,从awakeFromNib
或init
内调用,会为myWindow生成nil
值。任何帮助表示赞赏。谢谢
答案 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]。