为什么我的CCParticleExplosion泄漏记忆?

时间:2011-03-07 22:36:56

标签: cocos2d-iphone

我有以下代码:

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正在泄漏内存!

更新1:

使用CCParticleExplosion节点而不是alloc来解决问题。

3 个答案:

答案 0 :(得分:1)

如果您在内存中分配内容,则必须取消分配。

Node是一种使用自动释放池处理内存分配的创建方法。

答案 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];

答案 2 :(得分:0)

完成后使用[explosion release];