block中的内存管理

在arc下

一、a强引用b,b强引用a,b是a的全局变量(这个时候会形成循环引用)作用域

二、a强引用b,b强引用a,b是a的局部变量(这个时候是不会形成循环引用的)class

三、a强引用b,b中的block是一个方法参数,b是a的全局变量(这个时候不会形成循环引用)变量

四、a强引用b,b中的block是一个属性,b是a的全局变量(这个时候会形成循环引用)循环

PS:三、4是在一、2的状况下添加了一个block,是一、2的细分,因此若是是2的状况那么不会形成循环引用问题,咱们考虑在1的状况下。引用

分析:方法

2状况不会形成循环引用,是由于b是a的局部变量,b在离开做用域后就被释放了,不是在a的delloc方法中释放的,因此不会形成循环引用di

3状况不会形成循环引用,是由于block是b的一个参数变量,在离开做用域后block就被释放了,对a的引用也就消失了block

相关文章
相关标签/搜索