0
int maximumMinute;
NSTimer *timer;
- (void)startTimer: (int) minute {
maximumMinute = minute;
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(countDown) userInfo:nil repeats:YES];
}
- (void)countDown {
maximumMinute -= 1;
self.timerLabel.text = [NSString stringWithFormat:@"%i", maximumMinute];
if (maximumMinute == 0) {
[timer invalidate];
}
}
ながらにダウンカウントされません。NSTimerは、これは私のタイマーコードであり、私はちょうど私はいくつかのビューがちょうどテストするためにクリックされたときに呼び出されるこのメソッドを持っているのviewDidLoad</p> <p>でタイマーを起動ループ
まず-(void)clickSomthing: (UITapGestureRecognizer *)recognizer {
int i = 0;
while ([timer isValid])
{
NSLog(@"timer valid");
}
、ビューがロードされると、タイマカウントが発射されると、私は時間が実際にカウントダウン見ることができますが、私は方法「clickSomething」に関連するすべてのビューをクリックしてタイマーが実際にそれをダウンカウントされません。停止します。
私が本当にやりたいことは、whileループまたはforループにかかわらずゼロになるまでタイマーを継続したいということです。実際には、私はタイマーに基づいて私のゲームを停止しようとしていますが、ゲームはいくつかのwhileループとwhileループが必要です。
アプリケーションのメインスレッドをアプリケーション全体とタイマーとともにwhileループでロックしています。 –
どうすれば修正できますか?または私がしたいことのための任意の提案? –