协议成员属性要设置为weak
来源:互联网 发布:1908大军阀知乎 编辑:程序博客网 时间:2024/04/29 12:24
@interface YAFetcher : NSObject@property (nonatomic, weak) id<YAFetcherDelegate> delegate;@end
一定要注意:delegate属性需要定义成weak, 而非strong. PS: weak属性表示“非拥有关系”, 为delegate设置新值时, 设置方法既不保留新值, 也不释放旧值, 当delegate所指对象被摧毁时, delegate值也会被清空为nil. 而strong表示"拥有关系", 为delegate设置新值时, 设置方法会先保留新值, 再释放旧值.
通常情况下, 扮演delegate的那个对象也要持有YAFetcher实例. 假如声明delegate的时候用属性strong, 那么它们的关系为"拥有关系", 那么会引入"循环保留", 两个对象没办法被摧毁. 因此最好设置为weak.
0 0
- 协议成员属性要设置为weak
- ViewController中的UIView Property要设置为weak还是strong
- weak 属性需要在dealloc中置为nil吗
- retain,assign,weak,strong,copy属性设置的区别
- 代理属性为何要用 weak 修饰?
- internet 协议属性设置不了
- 为category添加属性和成员变量
- TCP协议相关属性设置-FIONBIO属性
- weak symbol属性
- 为标签设置动态属性
- 为对象的属性设置属性值
- delegate 作为属性,为什么要用weak修饰?
- iOS中代理属性为什么要用Weak修饰?
- iOS中代理属性为什么要用Weak修饰?
- iOS中代理属性为什么要用Weak修饰?
- iOS中代理属性为什么要用Weak修饰?
- Spring Bean 的 scope属性为何要设置为prototype
- iOS开发笔记>> IBOutlet连出来的视图属性为什么可以被设置成weak?
- OCP-1Z0-051 第122题 NATURAL JOIN(自然连接)和USING子句的用法
- 数据结构与算法-链表的基本操作---ShinPans
- [最小表示] zoj 1729 Hidden Password
- java的int类型线程安全
- android加载大量图片内存溢出的三种解决办法
- 协议成员属性要设置为weak
- 冰点下载器的使用方法
- servlet生成验证码验证的实现
- utf8_encode()与utf8_decode函数
- 做程序员压力山大,很多人都快疯了
- 用虚拟机安装 红旗Linux 系统图解
- C++ 函数模板和排序的函数模板——学习笔记
- uva10474
- 优化的下载Android源码的Python脚本