我正在使用 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
我已经仔细阅读了引用资料和在线资料。我通过以下方式检查了 Retain Cycles: 在使用的所有场景和对象类的末尾插入了 deinit 语句。它们都被正确调用。对应用程序进行分析以查找僵尸对象和泄漏,但运行时分析器结果中没有明显显示任何内容。
有人知道导致内存泄漏或场景转换缓存的原因以及防止这种情况的方法吗?
我很困惑现在扩展游戏似乎是错误的做法,因为随着复杂性的增加,问题可能会变得更加复杂。
最佳答案
经过进一步测试,我发现问题在于通过场景编辑器附加声音 Action 。
通过代码附加 Action 可提供稳定的内存使用,场景转换不会增加 0.1MB。
这只是部分答案,但如果其他人遇到此问题并有更多信息,请发布
关于swift - 场景转换导致内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53725901/