次の方法でクラッシュします。 UIは、NSTimerの開始/停止機能を処理するボタンのようなものです。タイマーが実行されると、UILabelが更新されます。 viewDidLoadメソッドを使用すると、私のタイマーは動作し、動作も停止しますが、再び起動するとアプリケーションがクラッシュします。NSTimerがクラッシュする
viewDidLoadメソッドでallocを削除し、スタートボタンを使用しようとすると、すぐにがクラッシュします。NSLog(@"Start now");
さえ呼び出されません。
コード:
- (void)tick {
NSLog(@"tick");
float value = [moneyLabel.text floatValue];
moneyLabel.text = [NSString stringWithFormat:@"%f", value + 1.0];
}
- (IBAction)startStopButtonClicked:(UIButton *)sender {
if ([sender.titleLabel.text isEqualToString:@"Start"]) {
NSLog(@"Start now");
if (timer) {
NSLog(@"Timer valid");
[timer fire];
} else {
NSLog(@"Timer is nil");
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(tick) userInfo:nil repeats:YES];
[timer fire];
}
NSLog(@"bla");
[sender setTitle:@"Stop" forState:UIControlStateNormal];
} else {
[timer invalidate];
timer = nil;
NSLog(@"Stopped.");
NSLog(@"Timer isValid: %@", timer);
[sender setTitle:@"Start" forState:UIControlStateNormal];
}
}
クラッシュログを投稿してください。 – Devang
はいplzは私たちがあなたを助けることができるようにあなたのクラッシュログを投稿します... – sandy
***キャッチされない例外 'NSInvalidArgumentException'、理由: ' - [__ NSCFArray startStopButtonClicked:]:インスタンス0x683d8e0' – DAS