美文网首页iOS知识库
一.代理为什么要用weak修饰

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

作者: Tanyfi | 来源:发表于2016-08-07 19:52 被阅读111次

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

这样才可以

相关文章

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

    代理为什么要用weak修饰 在说这个之前,得了解一个知识点, view 的属性和控制器是用ratain修饰的强引用...

  • IOS

    一、Delegate为什么要用weak或者assign修饰,不能用strong?说明:weak、assign修饰的...

  • assgin和weak区别

    面试必备。 ARC才有weak。 weak只能修饰对象类型,主要用控件及代理,而assign使用于修饰基本类型的。...

  • 2016笔记——Leaks

    Instrument如此强大,为何不好好使用呢? 先来看看前几天就代理展开的讨论(代理为什么要用weak修饰)。 ...

  • iOS中代理属性为什么要用Weak修饰?

    iOS中代理属性为什么要用Weak修饰? 一.写在前面 代理设计模式,在iOS开发过程中,是一个非常常见的设计模式...

  • iOS 为什么要用weak修饰代理(delegate

    在开发中我们经常使用代理,或自己写个代理,而代理属性都用weak(assign)修饰,看过有些开发者用strong...

  • iOS 为什么要用weak修饰代理(delegate)

    最近在review自己之前的代码发现了循环引用,ViewController和View相互持有的的问题,经层层排除...

  • NSURLSession对代理的强引用

    一般来说,在ARC下修饰delegate要用weak而不是strong 用tableview的代理(viewcon...

  • iOS琐碎总结

    1.为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别? A:...

  • 2020年iOS进阶面试题总结(二)

    1.为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别? A:...

网友评论

    本文标题:一.代理为什么要用weak修饰

    本文链接:https://www.haomeiwen.com/subject/aqmlsttx.html