调用可以抛出错误消息Swift 2

时间:2016-01-24 22:44:01

标签: error-handling swift2

我刚刚将我的应用转换为Swift 2,当然,我收到一条错误消息:

“通话可以抛出,但没有标记'尝试',并且未处理错误”

我在这里搜索了如何解决这个问题,但答案对我来说比错误本身更令人困惑。 LOL。

我的应用程序完美运行,直到我将其转换为Swift 2.很棒......

var myPlayer = AVAudioPlayer()

var yourSound1 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("RemSound_01", ofType: "wav")!)
func initYourSound() {
    myPlayer = AVAudioPlayer(contentsOfURL: yourSound1, fileTypeHint: nil)
    myPlayer.prepareToPlay()
    myPlayer.volume = 1.0 // < for setting initial volume, still not perfected.
}

错误将在以下行中抛出:

myPlayer = AVAudioPlayer(contentsOfURL:yourSound1,fileTypeHint:nil)

我该如何解决这个问题?我知道Swift试图“普及”错误处理,但是通过打破最简单的代码来实现这一点对我来说似乎很愚蠢。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这是您正在寻找的模式。

<throwing function> // compiler error in Swift 2    
do { try <throwing function> } catch { }

在捕获中,您通常会收到一个错误,您可以进一步处理。

答案 1 :(得分:0)

这适用于Swift 2.0,将它放在viewDidLoad方法中......

do {
        try AudioPlayer  = AVAudioPlayer(contentsOfURL: ButtonAudioURL, fileTypeHint: nil)
    } catch {
        print("errorin do-try-catch")
    }

其中ButtonAudioURL

  var ButtonAudioURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Besides", ofType: "mp3")!)