このように .h ファイルで宣言された 7 つの CCLabelAtlas ラベルがありますCCLabelAtlas *numberStat[7]
。次に、.m ファイルの for ループでそれらを初期化しました。
for (int i = 1; i <=7; i++) {
NSString* statName = [NSString stringWithFormat @"Number %d", i];
numberStat[i] = [[CCLabelAtlas labelWithString: [self loadThisValue:statName] charMapFile:@"digitalNumbers.png" itemWidth:26 itemHeight:37 startCharMap:'0'] retain];
[self addChild: numberStat[i]];
}
ラベルを更新しようとすると問題が発生します。2 から 7 に問題なく更新できますが、numberStat[1] の文字列 ( numberStat[1].string = @"111";
) を更新しようとすると、クラッシュします。まったく同じコードが 2-7 で機能します。
クラッシュログは次のとおりです。
-[CCSprite setString:]: unrecognized selector sent to instance 0x897cbd0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CCSprite setString:]: unrecognized selector sent to instance 0x897cbd0'