Objective-C: 実行を遅延させる
Objective-CにもJSのsetTimeout的なものがもちろんあります。
2種類あり、
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(hoge:) userInfo:nil repeats:YES];
繰り返しのある処理はこちらの方が便利な感じですが、引数を渡す時にNSDictionary型で渡さなきゃいけません。
引数を取りたい場合は下記の方が使いやすいです。
[self performSelector:@selector(hoge:) withObject:[NSNumber numberWithInteger:1] afterDelay:1.0];
使い分けてます。
【追記】
それぞれには実行のキャンセルがあります。
NSTimerの場合
NSTimer* hogeTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(hoge:) userInfo:nil repeats:YES]; [hogeTimer invalidate];
NSTimerを個別に停止することが出来ます。
performSelectorの場合
[NSObject cancelPreviousPerformRequestsWithTarget:self];
これでこれを呼ぶ以前のものが全てキャンセルされます。
- 作者: 株式会社アンク
- 出版社/メーカー: 翔泳社
- 発売日: 2013/04/09
- メディア: 大型本
- この商品を含むブログ (1件) を見る