iOS底层学习|block-1

78 阅读1分钟
第一种直接调用block
^{
    NSLog(@"直接调用block");
}();
  • 打印
直接调用block
先申明一个block在调用
// 方式二
void(^block)(void) = ^{
    NSLog(@"调用block");
};
block();
  • 打印
调用block
带参数的block
int(^block)(int,int) = ^(int a,int b){
    NSLog(@"执行block");
    int c = a * b;
    return c;
};
NSLog(@"block结果 - %d",block(1,2));
  • 打印
执行block
block结果 - 2

block本质上也是OC对象,其内部有个isa指针 block是封装函数调用以及函数调用环境的OC对象