我有两个项目,使用相同的代码,但是以下一行:
player = AVAudioPlayer(contentsOfURL: NSURL(string: fileLocation), error: &error)
仅在其中一个项目中返回此错误:
fatal error: unexpectedly found nil unwrapping an Optional value
另一个项目没有错误运行。
我正试着播放声音。
import UIKit
import AVFoundation
class ViewController: UIViewController {
var player:AVAudioPlayer = AVAudioPlayer()
override func viewDidLoad() {
super.viewDidLoad()
var fileLocation = NSString(string: NSBundle.mainBundle().pathForResource("halloweenmp3", ofType: "mp3")!)
var error: NSError? = nil
player = AVAudioPlayer(contentsOfURL: NSURL(string: fileLocation), error: &error)
player.play()
}
在两个项目中,相同的mp3文件已添加到项目中,但一个项目将播放声音,而另一个项目将返回错误。
给我错误的项目确实有其他代码,但错误似乎只与上面提到的行有关,所以我不知道项目中的另一部分代码是如何引起它的。
我尝试复制容易出错的项目并获得相同的结果。我已经创建了新项目并使用上面使用的相同代码并使其工作。我不确定项目是否以某种方式被破坏,或者项目中的其他一些代码是否导致错误,即使它未在调试器中被引用。
我可以在xCode中的文件导航器中预览mp3文件,这样它就可以了。
答案 0 :(得分:3)
将NSURL(String:)
更改为NSURL(fileURLWithPath:)
对我有用。
答案 1 :(得分:1)
你可以这样做: