0

콘솔에서 위의 경고를주는 응용 프로그램을 작성하고 있습니다.경고 :받은 메모리 경고. Level = 1 & 2

두 개의 스프라이트가 있습니다.

Train=[CCSprite spriteWithFile:@"train.png"]; 
    [self addChild:train z:0 tag:1]; 

    AlphaImage=[CCSprite node]; 
    AlphaImage.position=ccp(245,155); 
    [Train addChild:AlphaImage z:1 tag:2]; 

다른 방법으로는 애니메이션을 사용하여 AlphaImage를 초기화하고 있습니다.

CCSpriteFrameCache *frameCache1 =[CCSpriteFrameCache sharedSpriteFrameCache]; 
[frameCache1 addSpriteFramesWithFile:plist1];         
CCSpriteBatchNode *danceSheet1 = [CCSpriteBatchNode batchNodeWithFile:png1];  
[self addChild:danceSheet1];         

NSMutableArray *animFrames1 = [NSMutableArray arrayWithCapacity:frame[x]];  
for(int i = 1; i < frame[x]+1; i++) { 
    NSString *namef1=[NSString stringWithFormat:@"%@%i.png",alpha1,i];    
    CCSpriteFrame *frame1 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:namef1]; 


    [animFrames1 addObject:frame1]; 
} 

CCAnimation *anim1 = [CCAnimation animationWithFrames:animFrames1 delay:0.3f]; 
CCAnimate *animN1 = [CCAnimate actionWithAnimation:anim1];      
CCRepeatForever *repeat1 = [CCRepeatForever actionWithAction:animN1];     
[AlphaImage runAction:repeat1];  

나는 plist와 Texture atlas를 만들기 위해 zwoptex를 사용했습니다.
열차가 가면서 애니메이션 변경을 위해 plist와 Texture 아틀라스가 돌아옵니다. 그러나 4 ~ 5 번 적용 후 충돌이 발생합니다. 새로운 애니메이션이 사용하고 AlphaImage.i에 오기 전에 나는 또한 모든 프레임과 질감을 deallcated 한 :

나는 많은 문서를 통과 한 application.I을위한 HD 이미지를 사용하고
[CCSpriteFrameCache purgeSharedSpriteFrameCache]; 
[CCTextureCache purgeSharedTextureCache]; 

, 그들은 이러한 제안 :

[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFrames]; 
[[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames]; 

하지만 콘솔에서는이 줄을 사용하여 프레임을 제거하는 것에 대해 아무 것도 표시하지 않습니다. 내가 잘못하고있는 것이 있습니까?

답변

1

여기서 [[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];이 문은 NSObject의 performSelectorInBackground 메서드를 사용하여 백그라운드 스레드를 실행합니다.

+0

내 AllReset 메서드에는 애니메이션 코드 (위의 코드)가 있고 그 전에이 코드가 포함 된 removeUnused 메서드를 호출합니다. – user392406

+0

performSelectorInBackground에 대한이 페이지를 참조하십시오 - http://blog.datispars.com/tasks-in-background-thread-cocoa-performselectorinbackground/ – nishantcm

+0

performSelectorInBackground 루프에 들어가는 선택기에 응답하지 않습니다. – user392406

0

애니메이션이 끝난 후 배열을 해제하려고합니다.

// 이것이 원인 일 수 있습니다.

[animFrames1 release]; 
animFrames1 = nil;