浅谈深拷贝和浅拷贝
copy
实现拷贝的方法
- copy
- 只会产生不可变的副本对象(比如NSString)
- mutableCopy
- 只会产生可变的副本对象(比如NSMutableString)
- 要想使用copy必须遵循协议,并且实现copyWithZone方法
- (id)copyWithZone:(NSZone *)zone
- 浅拷贝:指针拷贝,指向的是同一份地址空间
- 深拷贝:对象拷贝,指向不同的地址空间
- 只有一种情况是浅拷贝,那就是不可变对象使用copy才是浅拷贝,其它都是深拷贝。