不可变对象执行不可变拷贝(copy)就是浅拷贝spa
若是执行拷贝时 只要有可变的不管是可变对象仍是可变拷贝(mutableCopy)就是深拷贝指针
只有源对象和副本对象都不可变才是浅拷贝,其它都是深拷贝!对象
copy 建立的是不可变副本(NSString , NSArray, NSDictionary)io
mutableCopy 建立的是可变副本 (NSMutableString, NSMutableArray, NSMutableDictionary)
table
shallow copy 浅拷贝(指针拷贝):至关于作了一次retain操做 引用计数器加1 没有产生新的对象 源对象和副本对象是同一个对象!引用
deep copy 深拷贝(内容拷贝):源对象和副本对象是两个不一样的对象,源对象的计数器不变,副本对象计数器加1(产生了一个新的对象)tab