NS对象的深复制与浅复制
2016-01-25 23:32
288 查看
1. copy 和 mutableCopy
不可变 copy : (非容器或容器)浅复制
可变(copy, mutableCopy), 不可变(mutableCopy): (非容器或容器)深复制
容器内对象, 始终为浅复制
2. initWithArray: 和 initWithArray: copyItems: (Dictionary, Set 相同)
initWithArray: 容器为新地址, 容器内对象为地址拷贝
initWithArray: copyItems: 容器为新地址, 容器内对象调用copy方法构成新容器成员
3. arrayWithArray: 与initWithArray
initWithArray: 等同于 alloc → init 引用指数加1
arrayWithArray: a. alloc init 引用指数加1 方法内持有;
b. 返回后默认注册到autoreleasePool;
c. 超过方法外的自动变量,release一次 引用指数减1
d. 方法调用方使用__strong自动变量强持有一次,引用指数加1
所以说前者更高效
不可变 copy : (非容器或容器)浅复制
可变(copy, mutableCopy), 不可变(mutableCopy): (非容器或容器)深复制
容器内对象, 始终为浅复制
2. initWithArray: 和 initWithArray: copyItems: (Dictionary, Set 相同)
initWithArray: 容器为新地址, 容器内对象为地址拷贝
initWithArray: copyItems: 容器为新地址, 容器内对象调用copy方法构成新容器成员
3. arrayWithArray: 与initWithArray
initWithArray: 等同于 alloc → init 引用指数加1
arrayWithArray: a. alloc init 引用指数加1 方法内持有;
b. 返回后默认注册到autoreleasePool;
c. 超过方法外的自动变量,release一次 引用指数减1
d. 方法调用方使用__strong自动变量强持有一次,引用指数加1
所以说前者更高效
相关文章推荐
- java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^
- 南天PR2、PR2E驱动下载,xp,win7,win8,win8.1,win10 32位64位驱动下载安装教程
- LeetCode17. Letter Combinations of a Phone Number可能是世界上最简明的解法了
- Linux进程学习笔记(二、创建进程)
- iOS开发实践之XML
- KVM之初体验——使用libvirt的virsh管理kvm
- 空间滤波&频域滤波(2)
- ISE PhysDesignRules ERROR
- for(;;){}循环语句
- 浅析 协议和block的反向传值
- Grub2的一些典型菜单写法
- UITextView的输入图标不是从开头开始
- poj_1002 487-3279 快速排序
- Codeforces Round #340 (Div. 2) E. XOR and Favorite Number(莫队算法)
- 绩效考核啊绩效考核!
- extern 和 static
- windows XP下Python2.7包管理工具安装-setuptool,pip、distribute、nose、virtualenv
- 将文件树归档到一个压缩的tar文件中
- spark开发中一些错误
- 【矩阵】[BALKAN OI 2009][Z_trening - 718][CQBZOJ2811]READING