Memory Cocos2d:particle.autoremoveConfigFinish未释放内存
我通过以下方式创建粒子效果:Memory Cocos2d:particle.autoremoveConfigFinish未释放内存,memory,memory-management,memory-leaks,cocos2d-iphone,particles,Memory,Memory Management,Memory Leaks,Cocos2d Iphone,Particles,我通过以下方式创建粒子效果: CCParticleSun* p = [[CCParticleSun alloc]initWithTotalParticles:5000]; p.autoRemoveOnFinish = YES; //more parameters p.duration = 1; 并将其添加到我的场景中: [self addChild:p z:self.zOrder+1]; 每次我创建这个粒子效果时,都会分配3MB内存,但从未释放。 我做错了什么?我必须手动释放粒子系统吗 NS
CCParticleSun* p = [[CCParticleSun alloc]initWithTotalParticles:5000];
p.autoRemoveOnFinish = YES;
//more parameters
p.duration = 1;
并将其添加到我的场景中:
[self addChild:p z:self.zOrder+1];
每次我创建这个粒子效果时,都会分配3MB内存,但从未释放。
我做错了什么?我必须手动释放粒子系统吗
NSZombies是禁用的,因此它不会意外地保存在内存中。您分配(或保留)的所有内容也必须释放。对于Cocos2D,最容易将其转换为自动释放对象,如下所示:
CCParticleSun* p = [[CCParticleSun alloc]initWithTotalParticles:5000];
[p autorelease];
p.autoRemoveOnFinish = YES;
p.duration = 1;
然后,它将在Cocos2D清理场景后发布
PS:5000个粒子是数量巨大的粒子!难怪您会看到数兆字节大小的分配。试着最多花500英镑,
如果你使用的粒子纹理大约为32x32像素或更大,则为100像素或更少。该死,我在内存管理方面很差劲:(再次感谢你的精彩回答!