【问题标题】:Cocos2d not releasing memoryCocos2d 不释放内存
【发布时间】:2014-02-27 23:16:15
【问题描述】:

我有一个 Cocos2d 游戏,其中包含 3 个“世界”之间的加载。为此,应用程序使用:

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:spriteSheetName];

在加载中卸载之前的“世界”:

[[CCSpriteFrameCache sharedSpriteFrameCache]removeSpriteFramesFromFile:plist];
NSString * textureFileName = [plist stringByDeletingPathExtension];
CCTexture2D *texture = [[CCTextureCache sharedTextureCache] textureForKey:[textureFileName stringByAppendingPathExtension:@"pvr.ccz"]];
[[CCTextureCache sharedTextureCache] removeTexture:texture];

使用 dumpCachedTextureInfo 时,我收到: CCTextureCache dumpDebugInfo:36 个纹理,190476 KB (186.01 MB)

但是 Xcode 内存选项卡显示大约 600MB。我正在使用 iPad 3 进行测试。最后在 Xcode 显示一些内存警告后:'Terminated due to Memory Pressure'。

有人知道为什么我的内存值不同吗?

【问题讨论】:

  • 您可能存在内存泄漏。使用 Instruments 查找泄漏并运行“分析器”构建,这将指出许多潜在(和实际)问题。
  • @LearnCocos2D 我已经提出了这两个建议,但我没有发现任何漏洞。无论如何感谢您的提示。

标签: memory memory-management memory-leaks cocos2d-iphone


【解决方案1】:

确保您在更改场景时也释放了触摸代理。

【讨论】:

  • 我从每个场景/图层中释放了触摸代理,但没有任何变化。我正在使用:[[CCDirector sharedDirector].touchDispatcher removeDelegate:self];
猜你喜欢
  • 2015-10-06
  • 1970-01-01
  • 2017-06-29
  • 1970-01-01
  • 2011-06-30
  • 2016-09-14
  • 2015-08-19
  • 2012-05-15
  • 2018-01-26
相关资源
最近更新 更多