大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
我没有在之前版本的Xcode中测试,不过很多人反映SKAudioNode的初始化代码在Xcode7.3之前工作的十分美好,不过在7.3中以下代码出错:
var bgMusic:SKAudioNode!
func playBgMusic(name:String){
if bgMusic != nil{
bgMusic.removeFromParent()
}
bgMusic = SKAudioNode(fileNamed: name)
bgMusic.autoplayLooped = true
addChild(bgMusic)
}
正如你所见,bgMusic是一个对象属性,上述代码运行时bgMusic会返回nil,然后后面会报如下错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
请大家相信,音乐资源文件名称绝对正确,也存放在App的Main bundle中.
因为代码使用Swift写的,不确定对应的Objc代码是否也是这样.
解决办法如下,声明一个局部变量临时存放一下返回值即可:
func playBgMusic(name:String){
if bgMusic != nil{
bgMusic.removeFromParent()
}
let tmpMusic = SKAudioNode(fileNamed: name)
tmpMusic.autoplayLooped = true
bgMusic = tmpMusic
addChild(bgMusic)
}