_NSConcreteGlobalBlock

  • 记述全局变量的地方有Block语法时
  • Block语法的表达式中不使用应截获的自动变量时
    该Block为_NSConcreteGlobalBlock类对象。即Block配置在程序的数据域中。除此之外的Block语法生成的Block为_NSConcreStackBlock类对象,设置在栈上。

那么将Block配置在堆上的_NSConcreteMallocBlock类在何时使用呢?

配置在全局变量上的Block,从变量作用域外也可以通过指针安全地使用。但设置在栈上的Block,如果其所属的变量作用域结束,该Block就被废弃。由于__block变量也配置在栈上,同样地,如果其所属的变量作用域结束,则该__block 变量也会被废弃。

将配置在栈上的Block复制到堆上,这样即使Block语法记述的变量作用域结束,堆上的Block还可以继续存在。

屏幕快照 2016-03-11 上午9.13.59.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容