delegate 作为属性,为什么要用weak修饰?
2016-09-20 00:00
375 查看
摘要: elegate 作为属性,为什么要用weak修饰?
weak指针主要用于“父-子”关系,父亲拥有一个儿子的strong指针,因此是儿子的所有者;
但是为了阻止所有权回环,儿子需要使用weak指针指向父亲;
你的viewcontroller通过strong指针拥有一个UITableview,tableview的datasource和delegate都是weak指针,指向viewcontroller,防止回环;
图片:weak1.jpg
weak指针主要用于“父-子”关系,父亲拥有一个儿子的strong指针,因此是儿子的所有者;
但是为了阻止所有权回环,儿子需要使用weak指针指向父亲;
你的viewcontroller通过strong指针拥有一个UITableview,tableview的datasource和delegate都是weak指针,指向viewcontroller,防止回环;
图片:weak1.jpg
相关文章推荐
- delegate 作为属性,为什么要用weak修饰?
- delegate 为什么用 weak属性
- iOS - Delegate代理为什么要用weak修饰(面试官钟爱)
- iOS 为什么要用weak修饰代理(delegate)
- iOS中代理属性为什么要用Weak修饰?
- iOS中代理属性为什么要用Weak修饰?
- 为什么接口中的属性必须用public static final修饰?
- delegate申请属性的时候为什么用assign而不是retain
- 为什么delegate在声明属性的时候要使用assign?
- UI中为什么用copy修饰NSString类型属性
- xib storyBoard IBOutlet连出来的视图属性为什么可以被设置成weak
- delegate的内存管理属性是weak还是assign
- iOS 面试题(九):为什么block要使用copy而不是strong或者其他属性修饰?
- delegate用什么属性修饰,ARC下与MRC下有什么不同?
- 为什么delegate属性使用assigne而不是retain?
- 为什么delegate属性使用delegate而不是retain?
- 为什么很多内置类如UITableViewController的delegate属性都是assign而不是retain?
- 如何在Swift中使用weak修饰Delegate
- 为什么xib或storyboard中定义的label属性是weak,而纯代码定义需要用strong
- #NString属性修饰符号为什么用copy?