【Swift】Timerを使って30秒後に特定の処理を実行する方法

タイトル通り、Swift で開発した iOS アプリで、一定時間経過後に特定の処理を行う方法についてです。
私の場合、Bluetooth でデバイスを検索し、30秒間何のデバイスも検知できなかったら「見つかりませんでした」メッセージを表示するために使っています。
…時間は 60秒でもいいかもしれませんが、とりあえず思った通りに動くのかの確認をしたかったので、時間については後ほど調整します。

今回参考にさせていただいた記事はこちら。

Swift4環境でTimerの使い方と挙動を確認してみた – Qiita
https://qiita.com/KikurageChan/items/5b33f95cbec9e0d8a05f

Timer を使って時間を計測しています。

 

サンプルコードは下記のとおりです。

Timer.scheduledTimer(timeInterval: 30, target: self, selector: #selector(timerUpdate), userInfo: nil, repeats: false)

まず、タイマーを開始するタイミングで上記のコードを実行します。
timeInterval で計測する時間を設定し、selector で一定時間経過した後に実行する関数を指定します。
また、repeatsfalse を指定しているため、繰り返し呼び出しなしで 1回のみ実行しています。

で、selector で指定した関数が下記です。

@objc private func timerUpdate() {
  // 30秒後に実行したい処理を記述
}

こちらに一定時間経過後に実行したい処理を記述します。
サンプルだと、上記の Timer が呼び出されてから 30秒後に timerUpdate 関数が呼び出されます。
なので、こちらで任意の処理を記述してください。

 

以上、Swift の Timer を使って一定時間経過後に特定の処理を実行する方法でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG