我有一个Cocoa应用,其主要NSWindowController
和NSView
内部连接到NSViewController
对象,如下所示:
CloudCardsViewController是NSViewController
,其Nib
和IBOutlet
到NSStackView
。当我尝试访问插座时,应用程序崩溃并在控制台上显示此错误:
致命错误:在展开Optional值时意外发现nil 2017-09-16 19:46:43.756852 + 0200 AppName [3402:150754]致命错误: 在展开可选值时意外发现nil
如果我按代码添加NSViewController
,那么效果很好......
如果我打印baseStackView
,结果为nil
有什么想法吗? 谢谢!
答案 0 :(得分:2)
您的代码存在的问题是仅从XIB文件加载MainWindowController
。 MainWindowController
被初始化,只有来自CloudCardsViewontroler
的连接的XIB。 但是你的CloudCardsViewController
从未实际为自己初始化。您无法像这样使用CloudCardsViewController
。您需要对其进行初始化,然后将其添加到MainWindowController
。
您使用初始化程序直接实例化了您的类。插座不会以这种方式连接。 Interface Builder创建类的自定义实例,并将这些实例编码为NIB和Storyboard以便重复解码,它不会自己定义类。