swift - bgMusic - 致命错误:在展开可选值时意外发现 nil
Posted
技术标签:
【中文标题】swift - bgMusic - 致命错误:在展开可选值时意外发现 nil【英文标题】:swift - bgMusic - fatal error: unexpectedly found nil while unwrapping an Optional value 【发布时间】:2015-09-02 21:29:28 【问题描述】:我在我的应用程序上发现了一个错误,但只有当应用程序在设备上运行时,如果应用程序使用模拟器运行,则不会生成错误。
我已将错误定位到背景音乐脚本,输出错误为fatal error: unexpectedly found nil while unwrapping an Optional value
。我在这里查看了类似的问题,但没有找到任何补救措施。
谁能帮助修复我的代码?
var bgMusicURL:NSURL = NSBundle.mainBundle().URLForResource("bgMusic", withExtension: "aif")!
backgroundMusicPlayer = AVAudioPlayer(contentsOfURL: bgMusicURL, error: nil) //error here!!!
backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()
如果您需要更多代码,请告诉我。
谢谢。
【问题讨论】:
error:strong text nil
不是 Swift。那不可能是你真正的代码。显示你的真实代码。
抱歉,这是一个错字。编辑以更正代码。
准确解释 bgMusic.aif 应该如何进入应用程序包。
【参考方案1】:
您的 bgMusic.aif 文件是否已添加到您的目标?
如果不是,它可能在模拟器上可以正常播放,但在设备上则不行
【讨论】:
【参考方案2】:仔细检查设备上的以下内容是否不为零:
NSBundle.mainBundle().URLForResource("bgMusic", withExtension: "aif")
强制解包 NSURL 的失败初始化是要求崩溃。您应该将值绑定到:
if let bgMusicURL = NSBundle.mainBundle().URLForResource("bgMusic", withExtension: "aif")
backgroundMusicPlayer = AVAudioPlayer(contentsOfURL: bgMusicURL, error: nil)
backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()
【讨论】:
但是您并没有解释为什么它在设备上而不是在模拟器上为零。以上是关于swift - bgMusic - 致命错误:在展开可选值时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章
Swift 中的 UIView 子类:IBOutlet 在展开时发现为零