【问题标题】:SpriteKit Memory Leak on static Menu scene静态菜单场景上的 SpriteKit 内存泄漏
【发布时间】:2016-03-17 08:33:08
【问题描述】:

我在静态菜单场景中遇到内存泄漏,似乎它发生在每个场景、游戏场景本身以及静态菜单/游戏结束上。内存似乎被正确释放(场景消失后内存减少)。

那些静态场景甚至不包含 update 回调定义。 这一切都在 didMoveToView 中设置,其中有一对 SKLabelNodesSKSpriteNode 分配有 spriteNodeWithImage

我曾尝试使用 dealloc 来监控场景是否被正确释放,而且它似乎不是问题的根源。

浏览 google 指向我在 stackoverflow 上创建的其他一些线程 spriteNodeWithImage textureWithImage 可能会导致 - 内存泄漏 -奇怪的错误“CUICatalog:无效请求:请求子类型而不指定成语”

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

期待任何提示。

最好的问候

【问题讨论】:

  • 您可能正在被您正在使用的玩具所迷惑。尝试乐器。还要确保您没有启用僵尸检测。
  • 如果你指的是这个记忆图,为什么你的意思是“你正在使用的玩具”。实际上存在内存泄漏,在运行应用程序一段时间后收到内存警告,然后在一段时间后应用程序崩溃。 NSZombie 被禁用。

标签: ios objective-c cocos2d-iphone sprite-kit cocos2d-x


【解决方案1】:

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

skView.showsPhysics = YES;

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

不过很高兴知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多