首页 > 其他 > 详细

Xcode7.3中SKAudioNode"诡异"初始化的解决

时间:2016-05-04 10:42:12      阅读:215      评论:0      收藏:0      [点我收藏+]

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! 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)
    }

Xcode7.3中SKAudioNode"诡异"初始化的解决

原文:http://blog.csdn.net/mydo/article/details/51312091

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!