Приложение вылетает при тестировании на iPhone X, но симулятор работает нормально, что такое "EXC_BAD_ACCESS" - PullRequest
0 голосов
/ 18 мая 2019

У меня есть приложение, которое я тестировал с симулятором и мой iPhone взаимозаменяемы. Я сделал некоторые изменения и тестировал с симулятором и не получил никаких ошибок. Когда я переключился обратно на iPhone, он потерпел крах, пытаясь перейти с ошибкой «Поток 1: EXC_BAD_ACCESS (code = 1, address = 0x290)», я включил кусок кода, где происходит сбой, и комментировал строку ошибки. Я озадачен, потому что поиск этой ошибки ведет к серьезной дыре, и, честно говоря, я не понимаю, почему она будет работать на симуляторе, а не на телефоне. Любая помощь, чтобы попытаться диагностировать причину этого, будет принята с благодарностью.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "showImageSubmit"{
        let vc = segue.destination as! ImageSubmit
        vc.newImage = newImage
        vc.newImageCreateDate = imageCreationDate
    } else if segue.identifier == "showSlideShow"{
        let vc = segue.destination as! SlideShow
        // This is where it fails
        vc.mode = segueMode
        vc.userProfile = userProfile
    }
}

1 Ответ

0 голосов
/ 18 мая 2019

Ответ в том, что симулятор был в порядке с выполнением функций для UIButton, у которого не было @objc в качестве запуска, но телефон не был.В приложении есть пользовательский класс UIButton для управления форматированием кнопок фильтра, и когда я переключил все функции, чтобы @objc перед ними, iphone возобновил работу как симулятор.Очень странно, что 2 вели себя по-разному, но, надеюсь, кто-то еще найдет это и найдет, что проверить.

...