请帮帮我..我是cosos2D游戏开发的新手。在instrument中,我在spriteWithSpriteFrameName的游戏中发现了以下代码中的漏洞。
tileArray=[[CCArray alloc]initWithCapacity:11];
for (int i=1; i<=10; i++) {
@autoreleasepool {
CCSprite *encounter;
encounter = [CCSprite spriteWithSpriteFrameName:@"82x60.png"];
[self addChild:encounter z:i tag:2600+i];
encounter.position=CGPointMake(-1000,-1000);
[tileArray addObject:encounter];
}
}请尽快回复我。谢谢..
发布于 2012-08-27 18:36:28
在您的onExit方法中,清除spritesheet,并从self中移除所有子对象。
-(void)onExit
{
[tileArray release];
CCSpriteFrameCache *cache = [CCSpriteFrameCache sharedSpriteFrameCache];
[cache removeSpriteFramesFromFile:@"yourSpriteSheet.plist"];
[self removeAllChildrenWithCleanup:YES];
[super onExit];
}发布于 2012-08-30 14:56:06
你的tileArray没有发布这就是为什么你会被泄露的原因。只需将其设置在自动释放池中....
tileArray=[[[CCArray alloc]initWithCapacity:11] autorelease];https://stackoverflow.com/questions/12139790
复制相似问题