Приложение аварийно завершает работу при отображении другого окна, но только при отсутствии отладки - PullRequest
0 голосов
/ 21 сентября 2019

Я 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 голосов
/ 21 сентября 2019

Я понял это.Это не было ясно в предоставленной ошибке, но после тестирования еще несколько раз, я заметил, что это иногда показывало другую ошибку.Я нашел одно упоминание о WebView, который я разместил в следующем представлении.Я просто написал import WebKit в нужном мне файле и не добавил его в связанные структуры на общей вкладке проекта.Не уверен, почему эти 100% не вылетали в отладчике, а 100% не работали на продукте, ну да ладно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...