1、什么是copy
copy的字面意思就是复制、拷,是一个产生副本的过程
对象拷贝的目的:要使用对象的数据,但是在修改对象的时候不影响原来的对象内容(mutablecopy)
2、特点
修改源文件的内容,不会影响副本文件,修改副本内容,不会英雄源文件。
OC中的copy,就是指对象的拷贝
作用:利用一个源对象尝试一个副本对象
修改源对象的属性和行为,不会影响副本对象(首要条件是源对象或者副本对象可以被修改)
修改副本的对象和属性,不会影响源对象(首要条件是源对象或者副本对象可以被修改)
3、如何使用copy功能
一个对象可以调用copy或mutablecopy方法来创建一个副本对象
copy(浅复制):创建的是不可变副本(如NSStriing、NSArray、NSDictionary)。浅复制实际上是地址的拷贝没有产生新对象
mutableCopy(深复制):创建的是可变副本(如NSMutableString、NSMutableArray、NSMutableDictionary)。深复制产生了新对象,分配了一块内存空间
4、使用copy的功能前提
copy:需要遵守NSCopying协议,实现copyWithZone:方法
mutablecopy:需要遵守NSMutableCopying协议,实现mutableCopyWithZone:方法 |
|