专门使用这行代码时无法解包值
Can't Unwrap Value When using this Line of Code Specifically
我在使用 avfoundation 为我的音频文件创建路径时遇到了这个错误,所以当我使用这行代码时
audioPlayer = try AVAudioPlayer(contentsOf: URL.init(fileURLWithPath: Bundle.main.path(forResource: "Alone", ofType: "m4r")!))
audioPlayer.prepareToPlay()
它崩溃并给我
fatal error: unexpectedly found nil while unwrapping an Optional value
我的所有代码都是正确的,因为编译器没有显示任何错误。
我正在使用 Xcode 9 和 swift 4
发生这种情况是因为您强制解包了不存在的路径。通常这是一种不好的做法。尽量避免强制展开。
试试这个:
guard let path = Bundle.main.path(forResource: "Alone", ofType: "m4r") else {
print("wrong path")
return
}
let url = URL(fileURLWithPath: path)
audioPlayer = try AVAudioPlayer(contentsOf: url)
audioPlayer.prepareToPlay()
然后,如果您在调试控制台中看到 "wrong path",这意味着您的应用程序包中不存在文件名 "Alone" 和扩展名 "m4r" 的资源。
希望对您有所帮助。
我在使用 avfoundation 为我的音频文件创建路径时遇到了这个错误,所以当我使用这行代码时
audioPlayer = try AVAudioPlayer(contentsOf: URL.init(fileURLWithPath: Bundle.main.path(forResource: "Alone", ofType: "m4r")!))
audioPlayer.prepareToPlay()
它崩溃并给我
fatal error: unexpectedly found nil while unwrapping an Optional value
我的所有代码都是正确的,因为编译器没有显示任何错误。 我正在使用 Xcode 9 和 swift 4
发生这种情况是因为您强制解包了不存在的路径。通常这是一种不好的做法。尽量避免强制展开。 试试这个:
guard let path = Bundle.main.path(forResource: "Alone", ofType: "m4r") else {
print("wrong path")
return
}
let url = URL(fileURLWithPath: path)
audioPlayer = try AVAudioPlayer(contentsOf: url)
audioPlayer.prepareToPlay()
然后,如果您在调试控制台中看到 "wrong path",这意味着您的应用程序包中不存在文件名 "Alone" 和扩展名 "m4r" 的资源。 希望对您有所帮助。