PIYO - Tech & Life -

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

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