Objective-C で開発中のアプリに、○秒後に特定の処理をする、という処理を追加したので、実装手順をまとめ。
時間の測定には NSTimer
を使い、指定した秒数が経過したら特定の処理を実行するようにしています。
NSTimer
の使い方について、参考にさせていただいた記事はこちらから。
【Obj-C】NSTimer (タイマー)の使用方法
https://blog.77jp.net/nstimer-タイマーの使用方法-iphone-ios-逆引き-サンプル
記述方法は下記の通りです。
タイマーを開始したいタイミングで下記を指定します。
なお、[timer fire];
を指定しなくても、自動で開始しますのでご注意ください。
NSTimer timer = [NSTimer scheduledTimerWithTimeInterval:30.0f target:self selector:@selector(doTask:) userInfo:nil repeats:NO];
なお、上記のコードでは、タイマーの測定時間は 30秒後で、繰り返し実行は無効=1回のみ にしています。
そして、selector
で指定した関数内に、30秒後に実行したい処理を記述します。
-(void)doTask:(NSTimer*)timer { // タイマーを停止 [timer invalidate]; // 30秒後に実行したい処理 }
追加する記述は以上です。
実際に実機やシュミレーターで動作確認したところ、問題なく 30秒後に doTask
が実行されました!
なお、もしリピートを有効にした場合は、タイマーが不要になった時 [timer invalidate];
を使ってタイマーを停止するのをお忘れなく。
私はリピート無効にしましたが、念のため doTask 内でタイマーを停止しています。
また、タイマーを再度開始したい場合は、 [timer fire];
を実行してください。
以上、Objective-C の NSTimer を使って○秒後に指定した処理を実行する方法でした。
ご参考になれば幸いです。