我刚刚将我的应用转换为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试图“普及”错误处理,但是通过打破最简单的代码来实现这一点对我来说似乎很愚蠢。
感谢您的帮助。
答案 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")!)