Block学习一:Block的实质

这篇主要让我们理解Block编译之后变成了什么

我们先创建一个类ABlock 只包含简单的带有Block的代码,如下:
Block学习一:Block的实质

- (void)method {
     
    void (^stackBlock)(void) = ^{
        
        NSLog(@"this is a block");
    };
    
    stackBlock();
}

然后我们打开控制台,到我们的ABlock文件所在目录,在控制台敲入如下代码

clang -rewrite-objc ABlock.m

命令执行完成之后我们会看到同目录下会多一个ABlock.cpp文件,打开该文件,搜索I_AB开头代码,我们会看到如下模块
Block学习一:Block的实质