浅谈深拷贝和浅拷贝

copy

实现拷贝的方法

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