block的实现原理是C语言的函数指针. 函数指针即函数在内存中的地址,通过这个地址可以达到调用函数的目的. Block是NSObject的子类,拥有NSObject的所有属性,所以block对象也有自己的生命周期,生存期间也会被持有和释放. block有三种: NSGlobalBlock 静态区block,这是一种特殊的bloclk,因为不引用外部变量而存在.另外,作为静态区的对象,它的释放是有操作系统控制的. NSStackBlock 栈区block,位于内存的栈区,一般作为函数的参数出现.…