Почему у моей CCParticleExplosion утечка памяти? - PullRequest
0 голосов
/ 08 марта 2011

У меня есть следующий код:

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 ]

1 голос
/ 08 марта 2011
[ 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];
1 голос
/ 08 марта 2011

Если вы выделяете что-то в память, вы должны освободить это.

Узел - это метод создания, который обрабатывает выделение памяти с помощью пула автоматического выпуска.

0 голосов
/ 15 февраля 2013

просто используйте [explosion release]; после того, как вы закончите использовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...