iOS 浅拷贝(Shallow Copy)与深拷贝(Deep Copy)

来源:互联网 发布:淘宝 打造新品标签 编辑:程序博客网 时间:2024/05/16 07:27

系统对象的copy与mutableCopy方法

1、非集合类对象的copy与mutableCopy

系统非集合类对象指的是 NSString, NSNumber … 之类的对象。对immutable对象进行copy操作,是指针拷贝,mutableCopy操作时内容拷贝;对mutable对象进行copy和mutableCopy都是内容拷贝。用代码简单表示如下:

[immutableObject copy] // 浅拷贝  [immutableObject mutableCopy] //深拷贝  [mutableObject copy] //深拷贝  [mutableObject mutableCopy] //深拷贝  

2、集合类对象的copy与mutableCopy

集合类对象是指NSArray、NSDictionary、NSSet … 之类的对象。对immutable对象进行copy,是指针拷贝,mutableCopy是内容拷贝;对mutable对象进行copy和mutableCopy都是内容拷贝。但是:集合对象的内容拷贝仅限于对象本身,对象元素仍然是指针拷贝。用代码简单表示如下:

[immutableObject copy] // 浅拷贝[immutableObject mutableCopy] //单层深拷贝[mutableObject copy] //单层深拷贝[mutableObject mutableCopy] //单层深拷贝
0 0
原创粉丝点击