当前代码:
@IBAction func sound1(sender: UIButton)
{
var sound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Sound1", ofType: "wav")!)
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch _ {
}
do {
try AVAudioSession.sharedInstance().setActive(true)
} catch _ {
}
var error: NSError?
do {
audioPlayer = try AVAudioPlayer(contentsOfURL: sound)
} catch var error1 as NSError {
error = error1
audioPlayer = nil
}
audioPlayer.prepareToPlay()
audioPlayer.volume = 1
audioPlayer.play()
}
这是我将此项目更新为Swift 2之前的当前代码。
audioPlayer = nil
尝试运行应用时遇到的问题是:
无法将“NilLiteralConvertible”类型的值指定为“AVAudioPlayer”类型的值
答案 0 :(得分:1)
这意味着您的变量audioplayer
不是可选的,因此无法设置为nil
。
要么将其设为可选,请将其与try?
一起使用(请注意?
)而不使用do catch
,或者不要尝试将其设置为{{ 1}}如果您想在nil
内继续使用try
。