1

我有一个故事板,其中有一个窗口控制器和一个视图控制器。在代码中访问视图控制器的最合理方法是通过在拥有的窗口控制器中定义的访问器。

class TutorialHUDWindowController: NSWindowController {

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

}

一切都编译得很好,但是当尝试在运行时访问视图控制器时,应用程序会因 sigabrt 崩溃:

在此处输入图像描述

控制台会记录类似于以下的错误消息:

MyApp[6178:329283] 路径 MyApp/Build/Products/debug/Myapp/Contents/Resources/TutorialHUDSyboard.storyboardc/NSWindowController-scR-w0-00.nib 的 Interface Builder 文件中的未知类 TutorialHUDViewController。
MyApp [6178:329283] 无法将(其他视图)出口从(NSViewController)连接到(其他视图):缺少设置器或实例变量
无法将类型“NSViewController”(0x7fff89ae9410)的值转换为“MyApp.TutorialHUDViewController”(0x1001f6a38)。
Myapp [6178:329283] 无法将类型“NSViewController”(0x7fff89ae9410)的值转换为“Thimble.TutorialHUDViewController”(0x1001f6a38)。

我在我的应用程序的其他地方使用了类似的投射模式并且一切正常,出了什么问题?

4

1 回答 1

1

在您的故事板中,自定义类 viewcontroller 引用还应该引用它所在的相应模块。如果它在哪里,请将其设置为“MyApp”或使用“从目标继承”选项。

在此处输入图像描述

此外,您可能需要在再次构建之前“清理”以清除任何缓存的故事板编译。

于 2017-08-05T00:34:57.037 回答