静态菜单场景中的 SpriteKit 内存泄漏

SpriteKit Memory Leak on static Menu scene

我在静态菜单场景中遇到内存泄漏,似乎它发生在每个场景中,游戏场景本身也是静态的 menu/gameover。内存似乎已正确释放(场景消失后内存减少)。

那些静态场景甚至没有定义 update 回调。 全部设置在 didMoveToView 中,里面有几个 SKLabelNodesSKSpriteNode 分配了 spriteNodeWithImage.

我尝试使用 dealloc 来监控场景是否被正确释放,看起来是这样,这似乎不是问题的根源。

浏览 google 向我指出了在 Whosebug 上创建的其他一些线程 spriteNodeWithImage textureWithImage 可能会导致 -内存泄漏 -奇怪的错误"CUICatalog: Invalid Request: requesting subtype without specifying idiom"

所以我尝试创建 UIImage imageNamed 然后放入纹理并在 SKTexture 中使用,实际上它已经删除了 CUICatalog 错误(无论如何,这似乎是一个愚蠢的消息没有被苹果删除 - 谁能证实这一点?) 但是根据内存泄漏,这根本没有帮助,无论如何,那个场景中的任何东西都是在开始时创建一次,所以我不知道为什么这个内存不断增长,并且每秒增长 0.5mb。

期待任何提示。

此致

其实我已经找到问题的根源了。 似乎调试物理会造成巨大的内存泄漏

skView.showsPhysics = YES;

这不是什么大问题,因为它仅在 showsPhysics=YES 时在调试时发生。

不过还是很高兴知道。