[英]NSViewController IBOutlet is always nil
我有一個Cocoa應用程序,它具有一個主NSWindowController
並且在連接到NSViewController
對象的NSView
是這樣的:
CloudCardsViewController是一個NSViewController
,其Nib
和IBOutlet
到NSStackView
。 當我嘗試訪問插座時,應用程序崩潰並在控制台上顯示此錯誤:
致命錯誤:展開一個可選值時意外發現nil 2017-09-16 19:46:43.756852 + 0200 AppName [3402:150754]致命錯誤:展開一個可選值時意外發現nil
如果我通過代碼添加NSViewController
,效果很好...
如果我打印baseStackView
,結果為nil
任何想法? 謝謝!
代碼的問題在於,您僅從 XIB文件加載MainWindowController
。 MainWindowController
被初始化,並且只有CloudCardsViewontroler
連接的XIB CloudCardsViewontroler
。 但是您的CloudCardsViewController
從未真正為自己初始化過 。 您不能像這樣使用CloudCardsViewController
。 您需要對其進行初始化,然后將其添加到MainWindowController
。
您直接使用初始化程序實例化了您的類。 插座不會以這種方式連接。 接口生成器會創建您的類的自定義實例,並將這些實例編碼為NIB和Storyboard,以進行重復解碼,它不會定義類本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.