在arc下
1、a强引用b,b强引用a,b是a的全局变量(这个时候会造成循环引用)
2、a强引用b,b强引用a,b是a的局部变量(这个时候是不会造成循环引用的)
3、a强引用b,b中的block是一个方法参数,b是a的全局变量(这个时候不会造成循环引用)
4、a强引用b,b中的block是一个属性,b是a的全局变量(这个时候会造成循环引用)
PS:3、4是在1、2的情况下添加了一个block,是1、2的细分,所以如果是2的情况那么不会造成循环引用问题,我们考虑在1的情况下。
分析:
2情况不会造成循环引用,是因为b是a的局部变量,b在离开作用域后就被释放了,不是在a的delloc方法中释放的,所以不会造成循环引用
3情况不会造成循环引用,是因为block是b的一个参数变量,在离开作用域后block就被释放了,对a的引用也就消失了