显示另一个窗口时应用程序崩溃,但仅在未调试时

时间:2019-09-21 09:53:35

标签: swift xcode macos

我是一个iOS开发人员,试图制作一个小型macOS应用程序。 我有情节提要,并且有两个NSWindowController及其viewController。

当单击第一个(初始)控制器中的按钮时,我想要另一个窗口(及其viewController)。 我已经尝试了两件事:

  1. 在VC1和Window2之间创建一个序列,命名并调用它。
  2. 实例化为self.storyboard?.instantiate(..)

这两项工作-当我通过Xcode运行时。但是,如果我关闭Xcode并仅运行生成的产品,则当我尝试打开下一个viewController时它就会崩溃,说:

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes:       0x0000000000000001, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   exc handler [32282]

Application Specific Information:
Performing @selector(ok:) from sender _NSPaddedButton 0x600003d0ac40

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.my.app              0x000000010d3e998e FirstViewController.openFile(at:) + 734 (SecondViewController.swift:44)
1   com.my.app              0x000000010d3e95e9 closure #1 in FirstViewController.openFile(_:) + 249 

我现在正在使用它来实例化它:

if let w = storyboard?.instantiateController(withIdentifier: "secondWindowIdentifier") as? NSWindowController{
    if let d = w.contentViewController as? SecondViewController{
        d.doSomething(someData: myData)
        self.presentAsModalWindow(d)
    }
}

1 个答案:

答案 0 :(得分:0)

我知道了。所提供的错误尚不清楚,但是经过多次测试后,我发现有时显示出不同的错误。我发现有人提到我在下一个视图中放置的WebView。 我只是在需要的文件中写了import WebKit,还没有在项目的“常规”选项卡中将其添加到链接的框架中。不知道为什么这100%没有在调试器中崩溃,而100%在产品上崩溃,但是哦。