適当な処理のコールバック時にさらに別の処理を行ったりする際、実行するタイミングの問題で不具合を起こしたり、処理の引数が複数存在する場合や戻り値によっては、処理自体が正常に行われなかったりクラッシュになる場合があります。
そういったときには、スレッド処理の dispatch_after が便利です。
今回はこの dispatch_after の使い方をメモしておきます。
INDEX
目次
- dispatch_after で遅延処理を行う
- まとめ
dispatch_after で遅延処理を行う
遅延処理を行いたい場所で以下の関数呼び出し、関数内の print の部分に処理を書いていけばいいかと思います。
dispatch_after
[code]
func dispatchAfter(delay: Double){
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay * Double(NSEC_PER_SEC) ))
dispatch_after(time, dispatch_get_main_queue(), {
print(“dispatch after”)
})
}
[/code]
使い方
[code]
// 1.0 秒後に処理を行う
dispatchAfter(1.0)
[/code]
まとめ
スレッドでの様々な処理は、一度使い方を覚えてしまうととても便利です。
通常時に処理を遅らせたいだけであれば NSTimer 等を使うはずですが、それでうまくいかない、思い通りの結果が出ないときは今回の dispatch_after を使用する、と覚えておけばいいかと思います。
この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。