私はCoco2Dで小さなゲームをしていて、カウントダウンクロックを持っています 注:バグを修正しようとしているだけなので、タイマーを停止できるようにクリーンアップに取り組んでいません。ラベルを設定し、タイマーを開始します。
timer = [CCLabelTTF labelWithString:@"10.0000" fontName:@"Helvetica" fontSize:20];
timerDisplay = timer;
timerDisplay.position = ccp(277,310);
[self addChild:timerDisplay];
timeLeft = 10;
timerObject = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];
注:timeLeftはdoubleです
これはupdateTimersのコードです:
-(void)updateTimer {
NSLog(@"Got Called!");
timeLeft = timeLeft -0.1;
[timer setString:[NSString stringWithFormat:@"%f",timeLeft]];
timerDisplay = timer;
timerDisplay.position = ccp(277,310);
[self removeChild:timerDisplay cleanup:YES];
//[self addChild:timerDisplay];
if (timeLeft <= 0) {
[timerObject invalidate];
}
}
私がこれを実行するとき、私はこれでクラッシュすることを切り替えます:
[timer setString:[NSString stringWithFormat:@"%f",timeLeft]];
そしてそれが与える緑色の矢印のものThread 1: EXEC_BAD_ACCESS (code=2, address=0x8)
と
0x197a7ff: movl 16(%edi), %esi
それが与える緑色の矢印のものThread 1: EXEC_BAD_ACCESS (code=2, address=0x8)