retain、copy、mutableCopy的区别(深拷贝 浅拷贝)
2015-12-17 12:27
411 查看
相比于原始地址:√为一样 X为不一样
总结:
retain:始终是浅拷贝。引用计数+1.返回的对象是否可变与被拷贝对象保持一致。
copy:对于不可变对象为浅拷贝,每次引用计数+1(这个与retain没有区别);
对于可变对象为深拷贝,引用计数不变
注意:!!!始终返回一个不可变对象!!!。
mutableCopy:始终是深拷贝,引用计数不变始终返回一个可变对象。
对象\容器 retain copy mutableCopy
不可变 √ √ X 可变 √ X X 对象\非容器 retain copy mutableCopy 不可变 √ √ X 可变 √ X X
总结:
retain:始终是浅拷贝。引用计数+1.返回的对象是否可变与被拷贝对象保持一致。
copy:对于不可变对象为浅拷贝,每次引用计数+1(这个与retain没有区别);
对于可变对象为深拷贝,引用计数不变
注意:!!!始终返回一个不可变对象!!!。
mutableCopy:始终是深拷贝,引用计数不变始终返回一个可变对象。
声明: 1. 以上内容属于本人整理的笔记,如有错误的地方希望能告诉我,大家共同进步。 2. 以上内容有些段落或语句可能是本人从其他地方Copy而来,如有侵权,请及时告诉我。
相关文章推荐
- poj 1273 Drainage Ditches
- 安卓开发之安卓AIDL的使用
- 安装并运行apk时出现恼人的"Error: Activity class {xxx/xxx.MainActivity} does not exist."
- wait,notify,notifyAll详细介绍
- GCD Again(杭电oj1787)(欧拉函数)
- JetBrains PyCharm 4.0.4 key
- Keepailved详细介绍
- SVN commit:remains in tree-conflict解决方案
- Raphael的Braille例子
- svn Aborting commit: 'XXX' remains in conflict 错误
- AIX下采用dd方式进行数据迁移的过程,供参考
- available()方法的讲解 .
- C++有哪几种情况只能用初始化列表,而不能用赋值?http://zhidao.baidu.com/link?url=omVOhkgo4ZtpRddk794ly-aX79VjboKv3c3noM5tdz
- Leetcode: Contains Duplicate II
- Leetcode: Contains Duplicate
- http://blog.csdn.net/linjingj/article/details/18881755
- 将PPT文件内容转换为图片放在Email邮件正文中发送
- LeetCode 172:Factorial Trailing Zeroes
- main函数的三个入参
- Daily Scrum NO.6