首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存泄漏cocos2D - spriteWithSpriteFrameName

内存泄漏cocos2D - spriteWithSpriteFrameName
EN

Stack Overflow用户
提问于 2012-08-27 17:56:35
回答 2查看 392关注 0票数 2

请帮帮我..我是cosos2D游戏开发的新手。在instrument中,我在spriteWithSpriteFrameName的游戏中发现了以下代码中的漏洞。

代码语言:javascript
复制
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];
}
}

请尽快回复我。谢谢..

EN

回答 2

Stack Overflow用户

发布于 2012-08-27 18:36:28

在您的onExit方法中,清除spritesheet,并从self中移除所有子对象。

代码语言:javascript
复制
-(void)onExit
 {
    [tileArray release];

    CCSpriteFrameCache *cache = [CCSpriteFrameCache sharedSpriteFrameCache];

    [cache removeSpriteFramesFromFile:@"yourSpriteSheet.plist"];

    [self removeAllChildrenWithCleanup:YES];

    [super onExit];


 }
票数 0
EN

Stack Overflow用户

发布于 2012-08-30 14:56:06

你的tileArray没有发布这就是为什么你会被泄露的原因。只需将其设置在自动释放池中....

代码语言:javascript
复制
tileArray=[[[CCArray alloc]initWithCapacity:11] autorelease];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12139790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档