NSViewController IBOutlet始终为零

时间:2017-09-16 17:56:21

标签: swift cocoa iboutlet nsviewcontroller nsstackview

我有一个Cocoa应用,其主要NSWindowControllerNSView内部连接到NSViewController对象,如下所示:

enter image description here

CloudCardsViewController是NSViewController,其NibIBOutletNSStackView。当我尝试访问插座时,应用程序崩溃并在控制台上显示此错误:

  

致命错误:在展开Optional值时意外发现nil   2017-09-16 19:46:43.756852 + 0200 AppName [3402:150754]致命错误:   在展开可选值时意外发现nil

如果我按代码添加NSViewController,那么效果很好......

这是代码: enter image description here

如果我打印baseStackView,结果为nil

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

您的代码存在的问题是从XIB文件加载MainWindowControllerMainWindowController被初始化,只有来自CloudCardsViewontroler的连接的XIB。 但是你的CloudCardsViewController从未实际为自己初始化。您无法像这样使用CloudCardsViewController。您需要对其进行初始化,然后将其添加到MainWindowController

您使用初始化程序直接实例化了您的类。插座不会以这种方式连接。 Interface Builder创建类的自定义实例,并将这些实例编码为NIB和Storyboard以便重复解码,它不会自己定义类。