メソッドの遅延処理

メソッドを遅延させて実行させたい時に使う処理をまとめる

performSelector: withObject: afterDelay:

 [self performSelectorInBackground:@selector(backgroundMethod) withObject:nil afterDelay:5.0f];
5秒後にbackgroundMethodメソッドを呼び出す

☆ポイント

  • 現在のスレッド上で遅延実行される
  • 遅延時間経過後にはスレッドが消滅してしまう

dispatch_after

 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 5.0f * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
   [self backgroundMethod];
 });
5秒後にbackgroundMethodメソッドを呼び出す

dispatch_time_t

 dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5.0f * NSEC_PER_SEC));
 dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
   [self backgroundMethod2];
 }];
5秒後にbackgroundMethod2メソッドを呼び出す

☆ポイント

  • 別のバックグラウンドスレッド上で動作する
最終更新:2014年11月07日 16:32