![](/img/trans.png)
[英]Thread1:EXC_BAD_ACCESS(code=1, address = 0X48) AVAudioPlayer (Swift)
[英]Thread1:EXC_BAD_ACCESS(code=1, address = 0X48)
我是Swift的新手。 我正在尝试运行此代码,但出现错误:
线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x48)
错误出现在这里:
self.player.play()
任何人都可以帮助解决这个问题吗?
import UIKit import AVFoundationclass ViewController: UIViewController {
var player = AVAudioPlayer() override func viewDidLoad() { super.viewDidLoad() do { if let audioPath = Bundle.main.path(forResource: "music", ofType: "mp3") { try player = AVAudioPlayer(contentsOf: URL(fileURLWithPath: audioPath)) } } catch { print("ERROR") } self.player.play() }
您对代码执行的操作是:
如果audioPath
不正确,则说明播放器创建不正确:应用程序将使用没有有效数据的播放器,从而导致播放过程中崩溃。
您可以编写代码使播放器成为optional
,这有助于防止崩溃:
import UIKit
import AVFoundation
class ViewController: UIViewController {
var player: AVAudioPlayer?
override func viewDidLoad() {
super.viewDidLoad()
player = initializePlayer()
player?.play()
}
private func initializePlayer() -> AVAudioPlayer? {
guard let path = Bundle.main.path(forResource: "music", ofType: "mp3") else {
return nil
}
return try? AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
}
}
对代码进行了一些更改:
player
现在是可选的 :无需将其初始化两次。 另外,如果初始化顺利进行,则可以毫无问题地使用它,否则您的应用程序将不会崩溃。 play
方法位于可选链中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.