iOS 容易造成循环引用的三种场景

循环引用的简单理解:

A引用B,B又引用A,双方都同时保持对方的一个引用,导致任何时候引用计数都不为0,始终无法释放。

一:Block

1.ARC环境下: 使用__weak声明一个代替self的新变量代替原先的self;

2.MRC环境下:使用__block .

二:代理

ARC环境下:声明代理时使用弱引用weak;

MRC环境下:声明代理时使用assign.

三:NSTimer

原文地址:https://www.cnblogs.com/zhaojian/p/5062548.html