dispatch_block_t 简单的实现不带参数的回调函数

通常我写一个不带参数的块回调函数是这样写的

在 . h 头文件中

定义类型

typedef void (^leftBlockAction)();

在定义一个回调函数

-(void)leftButtonAction:(leftBlockAction)leftBlock;

在.m 文件中

-(void)leftButtonAction:(leftBlockAction)leftBlock{

    leftBlock();

}


今天学会一个高大上的方法

只要在.h 头文件定义属性方法

@property (nonatomic,copy) dispatch_block_t leftBlockAction;


在.m文件 调用的方法里调用


    if (self.leftBlockAction) {

        self.leftBlockAction();

    }


在另个模块里直接

    MyAlertView *alert = [[MyAlertView alloc]init];

    alert.leftBlockAction = ^() {

        NSLog(@"left button clicked");

    };


是不是对第一种方法简单了很多

你可能感兴趣的:(ios,typedef)