タイトル通り、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 を使って一定時間経過後に特定の処理を実行する方法でした。
ご参考になれば幸いです。
 
					         
               
                       
                