iOSで仕方なく少し待ってから処理を実行するてのを時々やりたくなるんですが、毎度書き方を忘れるので、自分用にメソッドを定義して使っています。
どこかグローバルなところに定義しとくとアプリ全体で使えるので、AppDelegate.swift
の一番下あたりに定義を書いておきます。
func delay(_ delay: Double, closure: @escaping ()->()) {
DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
closure()
}
}
で使うときはこんな感じ。
delay(1.0) {
// do something
self.performSegue(...) みたいな
}
最悪SDKのAPIが変わったとしてもdelay
内部だけ書き換えればいいので楽。