NSTimerの生成では次のようにコールバック先となるメソッドをセレクタで指定します。
_timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(callback) userInfo:nil repeats:YES]; ... - (void)callback { // do something } |
これを、次のようにblocksとNSBlockOperationを利用するとコールバック用のメソッドを作らずに実装できます。
_timer = [NSTimer scheduledTimerWithTimeInterval:1 target:[NSBlockOperation blockOperationWithBlock:^{ /* do something */ }] selector:@selector(main) userInfo:nil repeats:YES]; |
なお、@selectorで指定しているmainは、blockOperationWithBlock:メソッドで取得したNSBlockOperationオブジェクトのmain。
/dev/rand: Objective-C blocks for fun http://orion98mc.blogspot.jp/2012/08/objective-c-blocks-for-fun.html
コメントを残す