この記事では、遅らせて処理を行う方法について解説していきたいと思います。
実装方法
実装方法は、大きく分けて以下の3パターンあります。一つ一つ解説していきたいと思います。
Dispatch
を使用した遅延実行#selector
を使用した遅延実行sleep
を使用した遅延実行
1. Dispatchを使用した遅延実行
Dispatchが一番王道なやり方かと思います。やり方は簡単です。
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) { print("5秒経ちました。") }
このDispatchの中に記述すると、5秒後に処理が行われます。
.now() + 5.0
で、今から5秒後というのを表しています。なので、この数値を変えれば好きな秒数で処理を遅らせることができます。
2. #selectorを使用した遅延実行
#selector
なので、関数として切り出せます。
self.perform(#selector(hogehuga), with: nil, afterDelay: 5.0)
@objc func hogehuga() { print("5秒経ちました。") }
afterDelay: 5.0
のところで、秒数を変更できます。
3. sleepを使用した遅延実行
これは、この処理を◯秒後に行うみたいな書き方ではなく、「◯秒間止める」というふうなイメージです。
print("スリープ!") Thread.sleep(forTimeInterval: 5.0) print("5秒経ちました。")
ちなみに、sleepだけでも呼ぶことができます。ただし、引数はInt型です。
print("スリープ!") sleep(5) print("5秒経ちました。")
参考文献