2014年3月28日金曜日

Objective-Cで簡単に遅延実行する方法

アプリを作っていると、処理を少し遅らせて実行したい場合があります。
Objective-Cでのやり方を備忘録として記載しておきます。


performSelectorを使用


『performSelector:withObject:afterDelay:』メソッドを使用すると簡単にできます。


=======================================

[self performSelector:@selector(hoge) withObject:nil afterDelay:1.0];

=======================================




ただ、このやり方は以下のような問題点があります

  • 並列処理では使えない
  • セレクターで呼ぶメソッドの引数を一つしか渡せない


これを解決するには、並列処理のときと同じようにGCDを使います。



GCDを使用


=======================================

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
    //遅延実行する処理
});

=======================================









0 件のコメント:

コメントを投稿