线程 1:EXC_BAD_ACCESS(代码=1,地址=0x48)- 用 iOS13.1(开发版本 2)中断

Thread 1: EXC_BAD_ACCESS (code=1, address=0x48) - broken with iOS13.1 (dev build 2)

所以,我昨天将我的 iPhone 6S 更新为 iOS13.1 的第二个开发版本,突然间我的应用程序(在应用程序商店中显示 0 次崩溃连接应用程序)在我的设备上 运行 时不起作用。它 确实 但是在 Xcode 的模拟器中工作。我正在使用 Xcode 10.3,但是 Xcode 11 beta 做同样的事情,模拟器也可以在 beta 上工作(尽管它们以其他方式破坏了我的应用程序)。

当我点击一个按钮时,本应将我带到所点击按钮的详细视图,但我收到此错误:

Thread 1: EXC_BAD_ACCESS (code=1, address=0x48)

在这段代码中

// sets up the audio for use in the app --------------------------------------------------------------//
        let GetReady = Bundle.main.path(forResource: “Get_Ready_up9db”, ofType: “m4a”)
        // this tells the compiler what to do when action is received
        do {
            audioPlayer_GetReady = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: GetReady! )) // Thread 1: EXC_BAD_ACCESS (code=1, address=0x48)
            try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category(rawValue: convertFromAVAudioSessionCategory(AVAudioSession.Category.ambient)))
            try AVAudioSession.sharedInstance().setActive(true)
        }
        catch{
            print(error)
        }

我不知道为什么会突然这样,但因为我想不通所以我有点害怕,因为我确定 iOS 13 非常非常非常很快。

请帮忙!

如果您在这样的声明中启动了 "audioPlayer_GetReady":

var audioPlayer_GetReady = AVAudioPlayer()

尝试重组以仅声明其类型:

var audioPlayer_GetReady: AVAudioPlayer

您现在需要在 class 的初始化方法中初始化它,或者,如果您确定它会在引用它之前在其他地方初始化,请用感叹号声明它:

var audioPlayer_GetReady: AVAudioPlayer!