请帮帮我.. 我是cosos2D游戏开发的新手。 在仪器中,我在以下代码中的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];
}
}
尽快回复我。感谢..
答案 0 :(得分:0)
在你的onExit方法中,清理精灵表,并从自己中删除所有孩子。
-(void)onExit
{
[tileArray release];
CCSpriteFrameCache *cache = [CCSpriteFrameCache sharedSpriteFrameCache];
[cache removeSpriteFramesFromFile:@"yourSpriteSheet.plist"];
[self removeAllChildrenWithCleanup:YES];
[super onExit];
}
答案 1 :(得分:0)
您的 tileArray 未发布,这就是您泄漏的原因。只需将它设置在自动释放池....
tileArray=[[[CCArray alloc]initWithCapacity:11] autorelease];