Ios 在展开可选值(lldb)AVAudioPlayer时意外发现nil

Ios 在展开可选值(lldb)AVAudioPlayer时意外发现nil,ios,swift,Ios,Swift,我不知道如何修复此错误消息告诉我的“nil” 我的代码: var error:NSError? self.player = AVAudioPlayer(contentsOfURL: NSURL( string:"http://192.168.0.101:3000/output.mp3" ), error: &error) 我得到的信息是: 致命错误:在展开可选值时意外发现nil (lldb)AVAudioPlayer的初始值设定项声明为: init!(contentsOfURL url

我不知道如何修复此错误消息告诉我的“nil”

我的代码:

var error:NSError?
self.player = AVAudioPlayer(contentsOfURL: NSURL( string:"http://192.168.0.101:3000/output.mp3" ), error: &error)
我得到的信息是:

致命错误:在展开可选值时意外发现nil

(lldb)

AVAudioPlayer的初始值设定项声明为:

init!(contentsOfURL url: NSURL!,
         error outError: NSErrorPointer)
这是因为
类型说明符,表示可以返回
nil
值。此外,文档还表明,如果URL未引用有效的音频资源,将返回
nil
:“音频数据必须采用Core audio支持的格式。有关支持格式的列表,请参阅《多媒体编程指南中使用音频》。”

至于您的错误,如果您将
player
声明为
AVAudioPlayer
(没有
类型说明符),那么当实际返回
nil
时,您将得到错误/致命错误

 27> class Foo { 
 28.     var player : AVAudioPlayer 
 29.     init () { 
 30.         self.player = AVAudioPlayer (contentsOfURL: url, error: &error) 
 31.     } 
 32. } 
 33> Foo()
fatal error: unexpectedly found nil while unwrapping an Optional value
Execution interrupted. Enter Swift code to recover and continue.
Enter LLDB commands to investigate (type :help for assistance.)
要“修复”问题,请将
player
声明为:

var player : AVAudioPlayer!

init()
中,确保
AVAudioPlayer(…)
在分配给
player
之前不返回
nil
self.player的类型是什么?声明为AVAudioPlayer的可能重复