我的游戏基本上已经完成。在Xcode中检查了内存泄漏,发现每次游戏运行时会泄漏约0.3 MB。然后去instruments工具中查看数据持久化。
罪魁祸首1:
SKTexture被频繁调用,但没有不断增长
罪魁祸首2:
我希望我能记得确切的语法,它是类似于AudioSource的东西,在调用这一行代码时发生:SKAction.playSoundFileNamed(...)
所以我去游戏的“设置”页面关闭了声音。再次测试内存使用情况,结果稳定。我还意识到AVAudioPlayer存在内存泄漏问题,因为音效和主题通过不同的机制运行。
我尝试将声明为类变量的AVAudioPlayer实例var backgroundAudio:AVAudioPlayer!
在关闭时设为nil,但没有帮助。
有没有什么巨大的锤子可以清理掉显然处于强引用循环中的音频源?当showPhysics被调用时,我也遇到了GameViewController的问题。我认为我的问题可能是游戏结构的问题。主菜单调用了一个视图和场景,所以你有一个场景内嵌在另一个场景中。关卡场景的实例似乎释放得很好,但留下了一些阴影音频错误。有什么解决办法吗?