1、深拷贝和浅拷贝的区别就是对象地址是否相同,相同是浅拷贝,反之则是深拷贝
2、对于NSString对象,copy是浅拷贝、multableCopy是深拷贝,但是原对象改变,对新对象没有影响
3、对于NSArray对象,copy是浅拷贝,multableCopy是深拷贝,无论是深拷贝还是浅拷贝,对于数组元素都是浅拷贝
4、如果遵循了NSCopying协议,且实现了copyWithXZone方法,使用initWithArray: copyItems:可以实现数组元素的深拷贝
属性使用copy和strong的区别
1、如果赋值的对象都是不可变的,copy和strong修饰的属性其指向的地址都是同一个
2、如果赋值的对象是可变的,copy是深拷贝,赋值对象改变,不会改变自身
3、如果赋值的对象是可变的,strong修饰的属性只是引用了,赋值对象改变,自身也会改变
4、我们一般采用copy修饰字符串,防止修改NSMutableString的字符串导致原来的数据被修改掉