陈斌彬的技术博客

Stay foolish,stay hungry

利用typedef为Block进行重命名

我们可以使用typedef为block进行一次重命名,方法跟为函数指针进行重命名是一样的:

typedef int (^Sum) (int,  int);

这样我们就利用typedef定义了一个block,这个block的名字就是Sum,需要传入两个参数。当我们需要使用时,就可以这样做了:

Sum mysum = ^(int a, int b) {

                n = 2;

                return (a + b)*n;
            };

这样就完整的定义好了一个block了,接下来的使用如下:

#import <Foundation/Foundation.h>

typedef int (^Sum) (int, int);

int main(int argc, const char * argv[])
{
    __block int n = 1;

    @autoreleasepool {

            Sum mysum = ^(int a, int b) {

                n = 2;

                return (a + b)*n;
            };

            NSLog(@"(3 + 5) * %i = %d", n, mysum(3, 5));

    }
    return 0;
}