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

代理为什么要用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

这样才可以

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作...
    曾令伟阅读 1,082评论 0 10
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,221评论 30 472
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,766评论 0 4
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 2,043评论 0 12
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,015评论 0 7