面试中基本上都会问到的一个问题就是深浅copy的问题。
浅拷贝就是只拷贝内存地址不拷贝内容,指向的是同一个内存地址。而深拷贝就是内存地址和具体属性都进行拷贝,完全复制一份新的出来,指向另外一个新的内存地址。
对于不可变对象(非集合类),copy 是浅拷贝,mutableCopy 是深拷贝,如一个字符串NSString。
而对于一个可变对象(非集合类),copy和mutCopy都是深拷贝。
对于一个不可变集合对象,copy是浅拷贝,mutableCopy是深拷贝,但是这里的深拷贝只是进行到了集合类中对象的内存地址而已,也就是拷贝了集合的地址,和集合中各个对象的地址。
而对于一个可变集合对象而言,copy和mutableCopy都是深拷贝。这里的深拷贝同上。