Objc Block实现分析
Objc Block实现分析 Block在iOS开发中使用的频率是很高的,使用的场景包括接口异步数据的回调(AFN)、UI事件的回调(BlockKits)、链式调用(Masonry)、容器数据的遍历回调(NSArray、NSDictionary),具体的用法以及使用Block的一些坑这里就不一一赘述了,本文会从源代码的层面分析我们常用的Block的底层实现原理,做到知其然知其所以然。 本文会从如下几个主题切入,层层递进分析Block的底层原理,还原Block本来的面目 无参数无返回值,不使用变量的Block分析 使用自动变量的Block分析 使用__block修饰的变量的Block分析 Block引用分析 无参数无返回值,不使用变量的Block分析 有如下的源代码,创建一个简单的block,在block做的处理是打印一个字符串,然后执行这个block。接下来会从源码入手对此进行分析:block是如何执行的 // 无参数无返回值的Block分析 int main(int argc, const char * argv[]) { void (^blk) (void) = ^{ printf...