关闭

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

标签: iOS深拷贝浅拷贝
409人阅读 评论(0) 收藏 举报
分类:

系统对象的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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:138637次
    • 积分:2099
    • 等级:
    • 排名:第18916名
    • 原创:75篇
    • 转载:55篇
    • 译文:0篇
    • 评论:8条
    文章分类
    最新评论