タイトルが示すように、特定の条件が満たされるまで、または 5 秒が経過するまで実行される while ループがあります。
これを解決する最善の方法は何ですか? に関するいくつかの簡単なチュートリアルを見てきましたが、指定された時間間隔の後に起動されNSTimer
たセレクターが何があっても実行されるようです。NSTimer
条件が満たされない場合にのみ実行する必要があります...
タイトルが示すように、特定の条件が満たされるまで、または 5 秒が経過するまで実行される while ループがあります。
これを解決する最善の方法は何ですか? に関するいくつかの簡単なチュートリアルを見てきましたが、指定された時間間隔の後に起動されNSTimer
たセレクターが何があっても実行されるようです。NSTimer
条件が満たされない場合にのみ実行する必要があります...
NSTimer スケジュールされたアクション ストア タイマーを作成するだけで、達成したいことに到達したら、このタイマーを無効にして、アクションをトリガーしないようにします。
基本的:
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(yourAction) userInfo:nil repeats:NO];
some code
//for deactivating the timer
[timer invalidate];
timer = nil;
これを使用して、メインスレッドで NSTimer を開始できます (上記のコードが確実に機能するようにするため)。
[self performSelectorOnMainThread:@selector(startTimerMethod) withObject:someOrNoObject waitUntilDone:NO];