2011-03-07 148 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];你使用它

完成後,