在使用AVAudioPlayer解包可选值时意外地发现了nil

时间:2014-11-23 21:38:30

标签: swift ios-simulator avaudioplayer nserror ipad-mini

所以这个代码在iOS模拟器上运行良好,但在我的iPad Mini上运行不正确

    var sound = NSURL(fileURLWithPath:"/Users/Dan/Documents/XCode Code/Colors- Tabbed?/Colors- Tabbed?/Sweg.aiff")
    var audioPlayer = AVAudioPlayer()
    audioPlayer = AVAudioPlayer(contentsOfURL: sound, error: &error)
    var error: NSError?

我在最后一行收到错误“在解包一个Optional值时意外发现nil。”

1 个答案:

答案 0 :(得分:2)

看起来AVAudioPlayer尚未审核。它会返回一个隐式解包的可选项,可以是nil,而iPad上显然 。 (可能是因为你的iPad不知道/Users/Dan/Documents/...在哪里,因为那是在你的电脑上。)

您希望以可选值捕获播放器,以便在使用之前测试nil

var sound = NSURL(fileURLWithPath:"/Users/Dan/Documents/XCode Code/Colors- Tabbed?/Colors- Tabbed?/Sweg.aiff")
var error: NSError?
var audioPlayer: AVAudioPlayer? = AVAudioPlayer(contentsOfURL: sound, error: &error)

if let audioPlayer = audioPlayer {
    // do things with the audioPlayer
}