iOS开发——Block内存管理实例分析
说道block大家都不陌生,内存管理问题也是开发者最头疼的问题,网上很多讲block的博客,但大都是理论性多点,今天结合一些实例来讲解下。 存储域 首先和大家聊聊block的存储域,根据block在内存中的位置,block被分为三种类型: NSGlobalBlock NSStackBlock NSMallocBlock 从字面意思上大家也可以看出来 1、 NSGlobalBlock 是位于全局区的block,它是设置在程序的数据区域(.data区)中。 2、 NSStackBlock 是位于栈区,超出变量作用域,栈上的Block以及 ____block__变量都被销毁。 3、 NSMallocBlock 是位于堆区,在变量作用域结束时不受影响。 注意:在 ARC 开启的情况下,将只会有 NSConcreteGlobalBlock 和 NSConcreteMallocBlock 类型的 block。 作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群: 413038000 ,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长! 推荐阅读: iOS开发——2020 最新 BAT面试题合集(持续更新中) 说了这么多理论的东西,有些人可能很懵,觉得讲这些有什么用呢,我平时使用block并没有什么问题啊,好了