iOS知识库

一.代理为什么要用weak修饰

2016-08-07  本文已影响111人  Tanyfi

代理为什么要用weak修饰

在说这个之前,得了解一个知识点, view 的属性和控制器是用ratain修饰的强引用:
只要控制器不死, 这个属性就存在

@property(null_resettable, nonatomic,strong) UIView *view;
或者retain  相当于strong
@property( nonatomic,retain) UIView *view;

那为什么代理要用weak弱引用呢?

拿tableView来说, tableView有个view 里面有个强引用, 他有个代理属性, 一般我们都是设置控制器为代理, 此时要是用强引用的化, 就会造成你拉着我,我拉着你,谁都别想死u循环引用,这是个很大的问题,效果如图:

屏幕快照 2016-08-07 下午7.46.55.png
所以代理要用weak修饰,此时才可以释放对象
屏幕快照 2016-08-07 下午7.48.39.png

这样才可以

上一篇 下一篇

猜你喜欢

热点阅读