ぴよログ

↓に移転したのでこっちは更新されません、多分。

今更Objective-C、ブロックをプロパティにして呼び出すメモ

移転しました →

コールバック的に呼びたい処理をブロックプロパティにして使う方法。

ヘッダー

typedef void (^Handler)(void);

@interface MyViewController : UIViewController
@property (nonatomic, copy) Handler handler;
- (IBAction)buttonTapped:(id)sender;
@end

実装

- (IBAction)buttonTapped:(id)sender {
    self.handler();
}

使う側

- (void)func
{
    MyViewController* myVC = ...;
    myVC.handler = {
        // do something
    };
}

MyViewControllerにはボタンがあってボタンが呼ばれたときに何かするコールバックみたいなイメージ。ブロック周りの書き方はつい忘れてしまうのでスニペット的な目的でここに残しておく。

詳解 Objective-C 2.0 第3版

詳解 Objective-C 2.0 第3版