在iPhone X上进行测试时,应用程序崩溃,但是模拟器可以正常运行,什么是“ EXC_BAD_ACCESS”

时间:2019-05-18 09:58:55

标签: ios swift xcode ios-simulator

我有一个正在使用模拟器进行测试的应用程序,并且我的iPhone可互换。我进行了一些更改,并正在使用模拟器进行测试,但未收到任何错误。当我切换回iPhone时,尝试通过错误“线程1:EXC_BAD_ACCESS(代码= 1,地址= 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 :(得分:0)

答案是,模拟器可以执行没有以@objc开头的UIButton功能,而手机则没有。该应用程序具有UIButton自定义类来控制过滤器按钮的格式,当我将所有功能切换为在它们前面都具有@objc时,iphone会像模拟器一样恢复工作。很奇怪,两个人的行为有所不同,但是希望其他人会发现这个并检查一下。