2013-07-13 5 views
1

cocos2d xcode (objective-c)에서 CCLabelTTF의 텍스트를 변경하려고합니다. 나는이 같은 레이블을 설정하고 있습니다 :Cocos2d getChildByTag Sprite를 반환하지 않습니다.

CCLabelTTF *progressLBL = [CCLabelTTF labelWithString:@"connecting..." fontName:@"Marker Felt" fontSize:10]; 
progressLBL.position = ccp( width + 4, (s.height) - hight - 15); 
CCMenu *menuHolder = [CCMenu menuWithItems:publishingLinesButton , nil]; 
[self addChild:progressLBL z:10 tag:cnt]; 

의 화면의 바로 높이 및 폭과 CNT 경우 레이블이 난을 만들어 1 ~ 13 그런 다음 약 5 초 후 각 시간을 간다 정수 그것을 이렇게 얻으십시오 :

CCLabelTTF *progressLBL = (CCLabelTTF *)[self getChildByTag:[dataInfo objectAtIndex:0]]; 
progressLBL.string = @"Updated"; 

dataInfo는 인덱스이고 인덱스 0에있는 객체는 정수입니다. 그러나이 코드를 실행하면 레이블이 변경되지 않습니다. 나는 또한 시도했다 :

CCLabelTTF *progressLBL = (CCLabelTTF *)[self getChildByTag:4]; 

그러나 레이블은 변경되지 않습니다.

감사합니다. 이것은 간단한 저녁 식사 인 경우 시간을 낭비해서 죄송합니다.

답변

1

실제로 Objective-C 배열에는 개체가 포함되어 있으며 기본 형식을 포함 할 수 없습니다. 태그 인수는 정수이고 대신 객체를 전달합니다 (아마 컴파일러 경고가 나타납니다). 나는 개체가 의 NSNumber 것을 가정, 그래서 당신은 있는 intValue 접근을 호출 그것의 가치를 취해야한다 : 잘

CCLabelTTF *progressLBL = (CCLabelTTF *)[self getChildByTag: dataInfo[0].intValue ]; 
+0

: 새로운 컴파일러 구문을 다음과 같이 번역 될 수

CCLabelTTF *progressLBL = (CCLabelTTF *)[self getChildByTag:[dataInfo objectAtIndex:0].intValue ]; 

나는 망할거야. 그것은 당신의 변화와 함께 일했습니다. 나는 컴파일 에러를 얻지 못했다. –