-----------------------------------------------欢迎查看block连载博客【专栏】-----------------------------------
【block编程第一篇】block语法 【block编程第二篇】block捕获变量和对象;
【block编程第三篇】block的内存管理(当前) 【block编程第四篇】block内部实现;
【block编程第五篇】block中如何避免循环引用
------------------------------------------------------------------------------------------------------
Block存储区域
首先,需要引入三个名词:
● _NSConcretStackBlock
● _NSConcretGlobalBlock
● _NSConcretMallocBlock
正如它们名字显示得一样,表明了block的三种存储方式:栈、全局、堆。获取block对象中的isa的值,可以得到上面其中一个,下面开始说明哪种block存储在栈、堆、全局。block为何是个对象,参考
点击打开链接
-----【要点1】:全局block
● 定义在函数外面的block是global类型的
● 定义在函数内部的block,但是没有捕获任何自动变量,那么它也是全局的。比