タイトル通り、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
で一定時間経過した後に実行する関数を指定します。
また、repeats
に false
を指定しているため、繰り返し呼び出しなしで 1回のみ実行しています。
で、selector
で指定した関数が下記です。
@objc private func timerUpdate() { // 30秒後に実行したい処理を記述 }
こちらに一定時間経過後に実行したい処理を記述します。
サンプルだと、上記の Timer
が呼び出されてから 30秒後に timerUpdate
関数が呼び出されます。
なので、こちらで任意の処理を記述してください。
以上、Swift の Timer
を使って一定時間経過後に特定の処理を実行する方法でした。
ご参考になれば幸いです。