我尝试了一些基本的东西,比如播放音频。
在我运行项目的初期,我收到了一个错误,错误没有显示在视图控制器中,但是当我运行项目时它会立即弹出。
致命错误:在解包可选值时意外发现nil
我的代码:
var buttonAudioURL = try? NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Sound", ofType: "m4a")!)
答案 0 :(得分:2)
使用NSBundle.mainBundle().pathForResource("Sound", ofType: "m4a")!
,您强制解开NSBundle返回的Optional(请注意结尾处的!
)。
因此,如果此资源“Sound.m4a”不可用,那么应用程序就会崩溃。
您需要做两件事:确保资源在捆绑中,并使用安全解包和错误处理而不是强制解包。
我强烈建议您阅读Apple为我们提供的button_to
,所有这些都会详细解释。
另请注意,NSURL
不会抛出,因此您不必使用try
。
<强>更新强>
这是我正在谈论的一个例子:
if let soundResourceURL = NSBundle.mainBundle().pathForResource("Sound", ofType: "m4a") {
let buttonAudioURL = NSURL(fileURLWithPath: soundResourceURL)
// use buttonAudioURL here
} else {
print("Unable to find Sound.m4a")
}