我刚刚开始学习Swift,我正在尝试在我的代码中添加一首歌来播放它,当我按下按钮但错误显示出来.如何解决这个错误?
var buttonAudioPlayer = AVAudioPlayer() @IBAction func btnWarning(sender: UIButton) { play() } override func viewDidLoad() { super.viewDidLoad() } func play() { let buttonAudioURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("warning", ofType: "mp3")!) let one = 1 if one == 1 { buttonAudioPlayer = AVAudioPlayer(contentsOfURL: buttonAudioURL) //getting the error in this line buttonAudioPlayer.prepareToPlay() buttonAudioPlayer.play() } }
luk2302.. 9
编译器正确地告诉您初始化程序可以在方法声明正确指出时抛出错误(例如,当NSURL
不存在时):
init(contentsOfURL url: NSURL) throws
因此,您作为开发人员必须处理最终发生的错误:
do { let buttonAudioPlayer = try AVAudioPlayer(contentsOfURL: buttonAudioURL) } catch let error { print("error occured \(error)") }
或者,您可以告诉编译器该调用实际上总是会成功通过
let buttonAudioPlayer = try! AVAudioPlayer(contentsOfURL: buttonAudioURL)
但如果创建实际上没有成功,那将导致您的应用程序崩溃- 请小心.你如果要加载该应用程序的资源应该只使用第二种方法必须在那里.
编译器正确地告诉您初始化程序可以在方法声明正确指出时抛出错误(例如,当NSURL
不存在时):
init(contentsOfURL url: NSURL) throws
因此,您作为开发人员必须处理最终发生的错误:
do { let buttonAudioPlayer = try AVAudioPlayer(contentsOfURL: buttonAudioURL) } catch let error { print("error occured \(error)") }
或者,您可以告诉编译器该调用实际上总是会成功通过
let buttonAudioPlayer = try! AVAudioPlayer(contentsOfURL: buttonAudioURL)
但如果创建实际上没有成功,那将导致您的应用程序崩溃- 请小心.你如果要加载该应用程序的资源应该只使用第二种方法必须在那里.