专门使用这行代码时无法解包值

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" 的资源。 希望对您有所帮助。