1
     今天使用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)")
        }

Hydrogen
2.5k 声望73 粉丝

Write code for fun.