2011-03-07 146 views
0

我有以下代码:为什么我的CCParticleExplosion泄漏内存?

CCParticleExplosion *explosion = [[CCParticleExplosion alloc] init]; 
    explosion.texture = [[CCTextureCache sharedTextureCache] addImage:@"chick.png"]; 
    explosion.position = egg.position; 
    [explosion setAutoRemoveOnFinish:YES]; 
    [explosion setTotalParticles:10]; 
    [self.layer addChild:explosion]; 

我认为setAutoRemoveOnFinish将自动删除从层爆炸节点,然后松开。但是xCode乐器说CCParticleExplosion泄漏了内存!

UPDATE 1:

通过使用CCParticleExplosion节点代替的alloc问题解决了。

回答

1

如果您将某些内容分配到内存中,则必须将其取消分配。

节点是一种处理内存分配与自动释放池的创建方法。

1
[ explosion autorelease]; 

将上述代码添加到您的代码中。

CCParticleExplosion *explosion = [[CCParticleExplosion alloc] init]; 
    explosion.texture = [[CCTextureCache sharedTextureCache] addImage:@"chick.png"]; 
    explosion.position = egg.position; 
    [explosion setAutoRemoveOnFinish:YES]; 
    [explosion setTotalParticles:10]; 
    [self.layer addChild:explosion]; 
    [ explosion autorelease]; 
0

只使用[explosion release];你使用它

完成后,