XCode 7 Swift - 调用可以抛出,它没有被标记为 'try' 并且错误没有被处理
XCode 7 Swift - Call can throw, it it is not markedwith 'try' and the error is not handled
我尝试在我的 iOS 应用程序上播放音乐,当我点击一个按钮时,我已经知道该怎么做,但这次当我插入线路时; audioPlayer = AVAudioPlayer(contentsOfURL: audioPlayerURL, error: nil)
它会给我一个选项,将 error
更改为 fileTypeHint
,我这样做了,但随后出现以下错误; `Call can throw, it is not markedwith 'try' and the error is not handled'.
我不太明白,因为在 Xcode 6
中,我在那行代码中使用了 error
这个词,我对此没有任何问题,并且可以播放音乐。自从我升级到 Xcode 7 Beta 3 以来,一定有不同或相似的方式来编写该行,但我到处搜索以查看发生了什么变化。
有人知道吗?
我遇到了同样的问题,在拼凑了一些信息之后,这就是我想出的,它适用于 Swift 2.0。
override func viewWillLayoutSubviews() {
let bgMusicURL:NSURL = NSBundle.mainBundle().URLForResource("bgmusic", withExtension: "mp3")!
backgroundMusicPlayer = try! AVAudioPlayer(contentsOfURL: bgMusicURL)
backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()
}
确保导入 AVFoundation
并将其添加到您的控制器中
var backgroundMusicPlayer:AVAudioPlayer = AVAudioPlayer()
错误处理在 Swift 2.0 中发生了变化。使用以下 try-catch 代码解决错误:
do {
audioPlayer = try AVAudioPlayer(contentsOfURL: audioFileUrl,
fileTypeHint: AVFileTypeMPEGLayer3)
} catch let error as NSError {
print("AV Sound Error: \(error.localizedDescription)")
}
我尝试在我的 iOS 应用程序上播放音乐,当我点击一个按钮时,我已经知道该怎么做,但这次当我插入线路时; audioPlayer = AVAudioPlayer(contentsOfURL: audioPlayerURL, error: nil)
它会给我一个选项,将 error
更改为 fileTypeHint
,我这样做了,但随后出现以下错误; `Call can throw, it is not markedwith 'try' and the error is not handled'.
我不太明白,因为在 Xcode 6
中,我在那行代码中使用了 error
这个词,我对此没有任何问题,并且可以播放音乐。自从我升级到 Xcode 7 Beta 3 以来,一定有不同或相似的方式来编写该行,但我到处搜索以查看发生了什么变化。
有人知道吗?
我遇到了同样的问题,在拼凑了一些信息之后,这就是我想出的,它适用于 Swift 2.0。
override func viewWillLayoutSubviews() {
let bgMusicURL:NSURL = NSBundle.mainBundle().URLForResource("bgmusic", withExtension: "mp3")!
backgroundMusicPlayer = try! AVAudioPlayer(contentsOfURL: bgMusicURL)
backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()
}
确保导入 AVFoundation
并将其添加到您的控制器中
var backgroundMusicPlayer:AVAudioPlayer = AVAudioPlayer()
错误处理在 Swift 2.0 中发生了变化。使用以下 try-catch 代码解决错误:
do {
audioPlayer = try AVAudioPlayer(contentsOfURL: audioFileUrl,
fileTypeHint: AVFileTypeMPEGLayer3)
} catch let error as NSError {
print("AV Sound Error: \(error.localizedDescription)")
}