浅谈深拷贝和浅拷贝

copy

实现拷贝的方法

  • copy
    • 只会产生不可变的副本对象(比如NSString)
  • mutableCopy
    • 只会产生可变的副本对象(比如NSMutableString)
  • 要想使用copy必须遵循协议,并且实现copyWithZone方法
- (id)copyWithZone:(NSZone *)zone

 

    • 浅拷贝:指针拷贝,指向的是同一份地址空间
    • 深拷贝:对象拷贝,指向不同的地址空间
    • 只有一种情况是浅拷贝,那就是不可变对象使用copy才是浅拷贝,其它都是深拷贝。
posted @ 2015-07-09 22:40  samyang1107  阅读(133)  评论(0编辑  收藏  举报