Block本质
block本质上也是一个OC对象,它内部也有个isa指针 block是封装了函数调用以及函数调用环境的OC对象
Block变量捕获机制
为了保证block内部能够正常访问外部的变量,block有个变量捕获机制
对象类型的auto变量
强引用的引用计数加1 :id obj1 = [[NSObject alloc] init]; 等价于 id __strong obj1 = [[NSObject alloc] init];
auto变量的捕获
block的类型
block有3种类型,可以通过调用class方法或者isa指针查看具体类型,最终都是继承自NSBlock类型
__NSGlobalBlock__ ( _NSConcreteGlobalBlock )
__NSStackBlock__ ( _NSConcreteStackBlock )
__NSMallocBlock__ ( _NSConcreteMallocBlock )