【发布时间】:2015-10-01 08:21:29
【问题描述】:
您好,我是 swift 和 ios 开发的新手。我的代码一直在工作,直到我更新到 Swift 2.0,我使用了 swift 迁移工具,但我仍然不知道如何排序和修复我的代码。请帮忙!
import AVFoundation
var backgroundMusicP: AVAudioPlayer!
func playBackgroundMusic(filename: String) {
let url = NSBundle.mainBundle().URLForResource(
filename, withExtension: nil)
if (url == nil) {
print("Could not find file: \(filename)")
return
}
var error: NSError?
do {
backgroundMusicP = try AVAudioPlayer(contentsOfURL: url!)
} catch {
backgroundMusicP == nil
}
if backgroundMusicP == nil {
print("Could not create audio player: \(error)")
return
}
backgroundMusicP.numberOfLoops = -1
backgroundMusicP.prepareToPlay()
backgroundMusicP.play()
}
【问题讨论】:
-
你说的错误是什么?
-
Swift 2.0 引入了新的错误处理系统。下面的 Dharmesh Kheni 回答是正确的。
-
在升级主要版本和翻译 Swift 代码时阅读 Xcode 发行说明通常是个好主意。 developer.apple.com/library/prerelease/tvos/releasenotes/…
-
好吧,显然上面的代码确实已经使用了新的错误处理模型和do-try-catch,并且它确实可以用Swift 2编译。但是存在逻辑错误,例如
backgroundMusicP == nil。 -
感谢您的回复,我将在今天晚些时候尝试以下代码。