场景过渡导致内存泄漏

时间:2018-12-11 14:09:33

标签: swift xcode

我正在使用Xcode 10.1 IDE和Swift 4.2创建一个简单的游戏

我已经设计了主菜单系统,以便通过单独的场景呈现每个页面UI。

每次加载新场景时,内存使用量都会增加大约0.1 MB。数量不多,但我不想因为这个问题而开始扩展游戏。

Memory leak when presenting SpriteKit scenes

Memory problems when switching between scenes SpriteKit

Tab-based SpriteKit Apps and Scene Caching

我在参考资料和在线上都拥有很好的外观。我已经通过以下方法检查了“保留周期”:在所有使用的场景和对象类的末尾插入了deinit语句。他们都被正确地称为。对应用进行了分析,以寻找僵尸对象和泄漏,运行时分析器结果中没有明显显示出来的东西。

有人对导致内存泄漏或场景过渡缓存的原因以及防止这种情况的方法有任何想法吗?

我很困惑,现在扩展游戏似乎是错的事情,因为随着复杂性的增加,这个问题可能会加剧。

1 个答案:

答案 0 :(得分:0)

进一步测试后,我发现问题出在通过场景编辑器附加声音动作。

通过代码附加动作可稳定使用内存,而通过场景转换不会增加0.1MB。

这只是部分答案,但是如果有人遇到这个问题并有更多信息,请发布