什么情况下用retain和copy
来源:互联网 发布:网络电视大全直播全球 编辑:程序博客网 时间:2024/05/16 06:18
- copy: 建立一个索引计数为1的对象,然后释放旧对象
- retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
那上面的是什么意思呢?
Copy其实是建立了一个相同的对象,而retain不是:
比如一个NSArray对象,地址为11111,内容为xx
Copy到另外一个NSArray之 后,地址为22222,内容相同,新的对象retain为1, 旧有对象没有变化
retain到另外一个NSArray之 后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1
也就是说,retain是指针拷贝,copy是内容拷贝。
什么情况下用assign,什么情况下用retain,什么情况下用copy?
assign:凡是不是拥有的关系,应该使用assign,而不是retain或copy。
retain或copy:当类拥有mutable子类时,你应该使用copy,而不是retain。
例如:NSAArray,NSSet,NSDictionary,NSData的,NSCharacterSet,NSIndexSet,NSString。
- 什么情况下用retain和copy
- 什么情况下用retain和copy .
- 什么情况下用copy、assign、retain、strong...
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
- IOS-10-详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy,mutableCopy
- 什么情况下我们使用copy,assign,retain,strong,weak?
- readwrite, readonly, assign, retain, copy, nonatomic属性的作用? 什么情况使用copy,assign和retain?
- 定义属性时,什么情况使用copy、assign、retain?
- 定义属性时,什么情况使用copy、assign、retain?
- 属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?
- 属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用
- 属性readwrite,readonly,assign,retain,copy,nonatomic各是什么作用,在哪种情况下用?
- copy 和 retain
- mknod指令详解
- linux操作--UBUNTU中如何获得root权限
- C++ 里面的不常用的iterator
- mongodb java 原生语言查询
- 关于illumina产生的测序源文件bcl转换成fastq格式的问题
- 什么情况下用retain和copy
- 天津13年第一场雨
- 调试winddows程序
- 南非行
- python 系统学习笔记(十二)---os os.path os.walk
- C#使用memcached实现缓存
- python笔记之数字
- Yii - excle扩展
- MFC中文档视图框架之间指针的用法