0

안녕하세요, obj-c와 cocos2d 프레임 워크를 사용합니다. 코드를 줄이기 위해 for 루프를 사용하여 NSMutableArray에 CCSprite를 채우는 방법은 무엇입니까? 이 배열에 들어가야하는 스프라이트/이미지가 +100 개 있기 때문에 for 루프가 필요합니다.for 루프를 통해 NSMutableArray를 CCSprites로 채우기

_backgrounds = [[NSMutableArray alloc]initWithCapacity:31]; 
for (int i = 31; i > 1; i--){ 
     [_backgrounds addObject: 
     [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName: 
      [NSString stringWithFormat:@"background_%d.png", i]]]; 
    } 

임이의 라인을 따라 뭔가를 찾고 :

이 내 현재 코드입니다 (비록이 코드 나던 작업)에 대한 이 (INT I = 31; I> (1); 난 ...) { [배경 추가 오브젝트 : [CCSprite spriteWithFile : @ "background % d.png", i]]; }

고맙습니다. 올리버.

+0

설명하는대로 코드를 작성한 것 같습니다. 질문이 뭐야? – Chuck

+0

기본적으로 콘솔에서 오류가 발생합니다. 'NSInvalidArgumentException', 이유 : '*** - [NSMutableArray insertObject : atIndex :] : 0으로 객체가 삽입되지 않습니다.' – Ospho

+0

오류는 사용자가 nil 객체를 삽입하십시오. 이 경우 CCSpriteFrameCache가 올바르게 생성되지 않습니다. 올바른 파일을 참조하고 있고 개체가 설정되고 있습니까? 오브젝트를 추가하기 전에 오브젝트를 작성한 다음 NSLog 오브젝트를 사용하여 오브젝트가 예상 한 것인지 확인하십시오. – sosborn

답변

0

공유 CCSpriteFrameCache에 값이 없을 가능성이 있습니다. 그 중 하나에 액세스하려면 먼저 채워야합니다.

+0

이 줄을 init {메소드에 추가했습니다 : [[CCSpriteFrameCache alloc] init]; 이 동일한 오류 발생 : 2011-02-17 13 : 46 : 26.875 SS2D [699 : 207] 46 : 26.880 SS2D없는 2011-02-17 13 'background_31.png'프레임 :적인 Cocos2D : CCSpriteFrameCache을 [699 : 207] *** 캐치되지 않은 예외 'NSInvalidArgumentException'으로 인해 앱 종료 중, 이유 : '*** - [NSMutableArray insertObject : atIndex :] : 0에 nil 개체 삽입 시도' 모든 이미지는 xcode, 나중에 다시 확인하여 다시 확인하십시오. 어쨌든 – Ospho

+0

, 그것을 해결 자 감사 : 대 \t는 (나는이> 1; i가 31 = int로 I -) {\t \t 는 [addObject _backgrounds [CCSprite spriteWithFile : \t \t \t \t \t \t \t \t [있는 NSString stringWithFormat : @ "background_ % d.png", i]]]; } – Ospho