如果在 block
代码中必须用到外面的东西 (block 中有代理设置为self)
最后 会产生强引用 结果无法释放
结决方法 (防止block循环引用) : 先把它弄出来声明为弱指针
- __unsafe_unretainsd typeof(self) selfVc =
self;
- __weak typeof(self) selfVc = self;
- __weak (当前控制器 *) selfVc = self;
上面三种方法 都要在block上面写 意思是:
- 声明一下 下面的self 就是这个控制器 并且变为弱指针
但这样同时存在一个问题 __weak弱引用随时可能被销毁