iOS之Block详解
iOS Block实例 : https://my.oschina.net/Jacedy/blog/842167 一、Block定义 闭包是一个函数(或指向函数的指针),再加上该函数执行的外部的上下文变量(有时候也称作自由变量)。 block 实际上就是 Objective-C 语言对于闭包的实现。 二、Block原理 // main.m int main(int argc, const char * argv[]) { @autoreleasepool { // static int age = 20; __block int age = 20; void (^blcok)(void) = ^ { age = 21; NSLog(@"%d", age); }; age = 22; NSLog(@"%d", age); blcok(); NSLog(@"%@", blcok); } } 将上述代码使用命令:$ clang -rewrite-objc main.m 编译后,截取C++代码如下: ....... __attribute__((visibility("default"))) __attribute__((availability(macosx,introduced=10_8))) #ifndef _REWRITER_typedef_NSXPCListenerEndpoint