你的位置:首页 > 操作系统

[操作系统]OC中的深拷贝与浅拷贝

  深拷贝(deep copy)与浅拷贝(shallow copy)的定义一直是有争论的.

  一种理解是:

    所谓的浅拷贝, 就是不完全的拷贝

 NSString *s = @"123";

 NSString *s1 = s;   // 浅拷贝, 拷贝指针

 NSString *s2 = [s copy]; // 深拷贝, 拷贝对象

另外一种理解是:

 仅仅是复制了指针, 是没有拷贝的, 所谓的拷贝是对象的拷贝

  浅拷贝就是只拷贝当前对象的成员, 深拷贝是拷贝所有层次的成员

  如果对象没有对象类型的属性, 那么深拷贝与浅拷贝概念一样