Swift 4.2, MacOS.
Приложение MacOS, над которым я работаю, иногда вылетает с EXC_BAD_ACCESS.
Иногда он не падает, а отправляет «нераспознанный селектор» случайному объекту (каждый раз другой экземпляр объекта).
Приложение представляет собой клиент, который подключается к серверу. Если сервер работает, проблем нет. Уничтожение сервера и повторное соединение с клиентом вызывает проблему.
Я использую NSSavePanel.
@IBAction func exportStuff(_ sender: NSButton)
{
...
let savePanel = NSSavePanel()
savePanel.allowedFileTypes = ["txt"]
savePanel.directoryURL = URL(fileURLWithPath: NSHomeDirectory()).appendingPathComponent("stuff export")
savePanel.beginSheetModal(for: window!)
{
if $0 == .OK
{
...
}
}
}
Именно NSSavePanel вызывает проблему при нажатии кнопки расширения (изображение 1) (опять же: это работает до повторного подключения)
Итак, я отправился на охоту на зомби и нашел одного:
Оскорбительный код является частью AppKit. Кажется, уведомление отправлено в часть меню, которая больше не существует.
Как мне исправить это?