这是我的第一篇文章,所以不要对我太粗暴。
我遇到cocos2d问题。我正在制作一个带有HUD图层和游戏图层的游戏。当我用[ClassicGameLayer scene]调用替换主菜单场景时,我的HUD和游戏层以这种方式初始化:
+ (CCScene*)scene
{
CCScene *scene = [CCScene node];
HudLayer *hud = [[[HudLayer alloc] initWithMode:1] autorelease];
ClassicGameLayer *layer = [[[ClassicGameLayer alloc] initWithHUD:hud] autorelease];
[scene addChild:hud z:hudZ];
[scene addChild:layer z:layerZ];
return scene;
}
当用户失败时,游戏HUD层调用
[[CCDirector sharedDirector] replaceScene:[GameOverLayer sceneWithMode:integer andScore:points]]];
调用HUD层的dealloc,但从不调用ClassicGameLayer的dealloc。我搜索了几乎所有我能想到但仍然没有运气的东西。 有谁知道什么导致我这个问题?如果是这样,我该如何解决?我认为每个其他场景都在正确发布:)
答案 0 :(得分:0)
如果您的自动释放池永远不会到达解除分配内容的位置,它将永远不会释放任何内存。我曾经写过一个Mac应用程序曾经遇到过这个问题。它也不会在仪器中显示为内存泄漏。
如果您遇到此问题,我建议不要使用自动释放。