对一不可变对象复制,copy
是指针复制(浅拷贝)和mutableCopy
就是对象复制(深拷贝)。
如果是对可变对象复制,都是深拷贝,但是copy返回的对象是不可变的。
浅复制只复制对象本身,对象里的属性、包含的对象不做复制
深复制复制全部,包括对象的属性和其他对象
Foundation框架支持复制的类,默认是浅复制
在Foundation对象中:
copy
是一个不可变的对象时,作用相当于retain
当使用mutableCopy
时,不管源对象是否可变,副本是可变的,并且实现真正意义上的copy
当我们使用copy
一个可变对象时,副本对象是不可变的。
下面转一篇文章关于C、Objective-C、自定义类的深/浅拷贝比较