2017-08-05 9 views
0

私はウィンドウコントローラとビューコントローラを持っているストーリーボードを持っています。コード内でビューコントローラにアクセスする最も合理的な方法は、所有ウィンドウコントローラで定義されたアクセサを使用する方法です。なぜ私はストーリーボード内の私のviewcontrollerサブクラスにキャストできませんか?

class TutorialHUDWindowController: NSWindowController { 

    var tutorialHUDViewController: TutorialHUDViewController { 
     get { 
      return self.contentViewController! as! TutorialHUDViewController 
     } 
    } 

} 

すべてが正常にコンパイルが、実行時にビューコントローラにアクセスしようとすると、SIGABRTでアプリがクラッシュ:

enter image description here

及びこれらに類似コンソールログのエラーメッセージ:

 
MyApp[6178:329283] Unknown class TutorialHUDViewController in Interface Builder file at path MyApp/Build/Products/debug/Myapp/Contents/Resources/TutorialHUDStoryboard.storyboardc/NSWindowController-scR-w0-00.nib. 
MyApp[6178:329283] Failed to connect (otherView) outlet from (NSViewController) to (otherView): missing setter or instance variable 
Could not cast value of type 'NSViewController' (0x7fff89ae9410) to 'MyApp.TutorialHUDViewController' (0x1001f6a38). 
Myapp[6178:329283] Could not cast value of type 'NSViewController' (0x7fff89ae9410) to 'Thimble.TutorialHUDViewController' (0x1001f6a38). 

私のアプリの他の場所でも同様のキャスティングパターンを使用していますが、うまくいきます。何が問題になりますか?

答えて

0

あなたのストーリーボードでは、カスタムクラスのviewcontrollerリファレンスも適切なモジュールを参照する必要があります。「MyApp」に設定するか、「Inherit From Target」を選択してください。

enter image description here

また、あなたは任意のキャッシュされたストーリーボードのコンパイルをクリアするために、再度ビルドする前に、「クリーン」が必要になる場合があります。

関連する問題