今天使用Xcode7打开之前写的一个小游戏,发现出了不少语法错,其中一处就是由于异常捕捉方式的改变导致的,原代码如下
var error: NSError? = nil
        backgroundMusicPlayer =
            AVAudioPlayer(contentsOfURL: url,error: &error)
        if backgroundMusicPlayer == nil {
            print("Could not create audio player: \(error!)")
            return
        } 
原代码中,AVAudioPlayer的构造函数有了可抛出错误的重载函数,现在的原型不接受第二个error参数,函数不再为failable,应使用try catch捕捉异常
do{
            backgroundMusicPlayer = try
            AVAudioPlayer(contentsOfURL: url!)
        }
        catch let error as NSError {
            print("Could not create audio player: \(error)")
        }