循环引用的简单理解:
A引用B,B又引用A,双方都同时保持对方的一个引用,导致任何时候引用计数都不为0,始终无法释放。
一:Block
1.ARC环境下: 使用__weak声明一个代替self的新变量代替原先的self;
2.MRC环境下:使用__block .
二:代理
ARC环境下:声明代理时使用弱引用weak;
MRC环境下:声明代理时使用assign.
三:NSTimer
循环引用的简单理解:
A引用B,B又引用A,双方都同时保持对方的一个引用,导致任何时候引用计数都不为0,始终无法释放。
一:Block
1.ARC环境下: 使用__weak声明一个代替self的新变量代替原先的self;
2.MRC环境下:使用__block .
二:代理
ARC环境下:声明代理时使用弱引用weak;
MRC环境下:声明代理时使用assign.
三:NSTimer