retain和copy的区别
来源:互联网 发布:打开key的软件 编辑:程序博客网 时间:2024/05/17 23:39
retain和copy的区别
当手动进行内存管理时,对于OC对象,在get方法中可以使用retain、 copy
对于普通OC对象使用retain
对于NSString使用copy
retain :使当前对象的引用计数+1,在oc对象中使用
copy :创建一个对象副本,和调用copy方法的对象不是同一个,常常在NSString中使用
(不可变对象的copy和retain一样引用计数+1,mutableCopy为浅拷贝,可变对象的copy为浅copy,mutableCopy为深拷贝)深复制(mutablecopy):深拷贝为对象拷贝,原来的对象计数器不变。
浅复制:浅拷贝也为指针拷贝,拷贝后原来的对象计数器会+1;
在拷贝时,按照copy或者MutableCopy的默认操作方式进行,只是在由不可变对象复制到不可变对象时,系统为了节约性能就没有新创建这个不可变对象,其余时候还是都要新开辟内存空间,将源对象指向的内容放到新开辟空间中,只是简单的移动,不会进行多余的操作。
个人感觉,理解深复制和浅复制的关键在于抓住复制的主要目的,即产生一个副本对象,在改变源对象或者副本对象时,不会影响另外一个,然后浅复制就是浅层次的复制,只复制表面的东西,深复制就是更深层次的复制,只要与之相关的全部复制过去。
http://www.cnblogs.com/liuxiang520/p/3876679.html
http://blog.sina.com.cn/s/blog_e3fce4f60101rkm2.html
http://www.shangxueba.com/jingyan/1844217.html
0 0
- retain和copy的区别
- retain和copy的区别
- retain和copy的区别
- retain和copy的区别
- retain和copy的区别
- retain和copy的区别
- copy和retain的区别
- retain和copy的区别
- copy和retain的区别
- retain和copy的区别
- retain和copy还有assign的区别
- retain和copy还有assign的区别
- retain和copy还有assign的区别
- @property中retain和copy的区别
- 属性特性copy和retain的区别
- retain和copy还有assign的区别
- retain和copy还有assign的区别
- IOS中Retain和Copy的区别
- c 变量
- 初识竞品分析
- Hibernnate编程基础-基础框架的搭建
- 有关二叉树的中序遍历
- 自己动手写工具----签到器
- retain和copy的区别
- 野指针、空指针
- Codeforces Round #278 (Div. 2) 488C.Fight the Monster
- android之实现各个组件点击事件处理
- mysql commond
- fstream::good
- 安卓互联网恶意软件危害用户
- hist()R 直方图
- net利用quartz任务调度,开发Job管理系统一