Swift: dispatch_after で遅延処理を行う

適当な処理のコールバック時にさらに別の処理を行ったりする際、実行するタイミングの問題で不具合を起こしたり、処理の引数が複数存在する場合や戻り値によっては、処理自体が正常に行われなかったりクラッシュになる場合があります。
そういったときには、スレッド処理の dispatch_after が便利です。

今回はこの dispatch_after の使い方をメモしておきます。

目次

  • dispatch_after で遅延処理を行う
  • まとめ

dispatch_after で遅延処理を行う

遅延処理を行いたい場所で以下の関数呼び出し、関数内の print の部分に処理を書いていけばいいかと思います。

dispatch_after

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")
    })
}

使い方

// 1.0 秒後に処理を行う
dispatchAfter(1.0)

まとめ

スレッドでの様々な処理は、一度使い方を覚えてしまうととても便利です。

通常時に処理を遅らせたいだけであれば NSTimer 等を使うはずですが、それでうまくいかない、思い通りの結果が出ないときは今回の dispatch_after を使用する、と覚えておけばいいかと思います。

この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

siro:chro 無料ゲーム SQN をリリースしました

img_sqn_00

sirochro 初の無料ゲームアプリ SQN をリリースしました。
記事:SQN: iOS 無料ゲームアプリ SQN - Sequential Numbers をリリース
ちょっとした時間に楽しめる完全無料のゲームなっていますので、是非ダウンロードして遊んでみてください。

↓SQN のダウンロードはこちらから

Related Contents

Pickup Contents