黑马程序员技术交流社区

标题: 【iOS新手入门】IOS 深拷贝和浅拷贝的详解 [打印本页]

作者: Simpon    时间: 2016-5-6 17:19
标题: 【iOS新手入门】IOS 深拷贝和浅拷贝的详解
本帖最后由 Simpon 于 2016-10-27 09:40 编辑



开篇声明应广大同学需求,在面试过程中,总有些面试官会问到深拷贝与前拷贝的区别。本文是关于iOS中深拷贝与浅拷贝的详解、区别以及部分测试代码。

首先说些概念性的东西。
什么是浅拷贝与深拷贝。
浅拷贝就是不可变对象执行不可变拷贝(copy)
深拷贝就是如果执行拷贝时 只要有可变的无论是可变对象还是可变拷贝(mutableCopy)
在简单点说
只有源对象和副本对象都不可变才是浅拷贝,其它都是深拷贝!


copy 创建的是不可变副本(NSString , NSArray, NSDictionary)
mutableCopy 创建的是可变副本 (NSMutableString, NSMutableArray, NSMutableDictionary)
shallow copy 浅拷贝(指针拷贝):相当于做了一次retain操作 引用计数器加1 没有产生新的对象  源对象和副本对象是同一个对象!
deep copy 深拷贝(内容拷贝):源对象和副本对象是两个不同的对象,源对象的计数器不变,副本对象计数器加1(产生了一个新的对象)



那么一般的面试官就会问深copy 和浅copy的区别是什么?
可参考的回答如下:




综上所述,希望同学们对于深拷贝与浅拷贝能有个更深的认识,不过其实当面试官问到该问题的时候,一般还会伴随着其他的问题,在他提出问题之前,莫不如主动抢占先机,提前说明,那么推荐同学们去看下
【iOS技术分享】关于属性关键字,你又知道多少?(上)


精华推荐:
黑马程序员:为苹果与iOS开发者的前景正名
与君共勉 --- 记黑马22期同学成长经验。
【持续更新】2016年最全最新的iOS视频+软件+源码+面试/技术
关于iOS 10最新的课程视频及demo第三弹,火速发布了


作者: Wangyk    时间: 2016-5-6 23:27
受教了
个人认为:区别就是浅拷贝是指针拷贝,深拷贝是内容拷贝,也就是新创建了一个对象
作者: luffy99    时间: 2016-5-17 10:47
楼主强强强
作者: niko    时间: 2016-5-17 13:09
我来看看

作者: helloJohn    时间: 2016-5-18 16:43
回复看看
作者: heima_heimahaha    时间: 2016-5-20 20:34
enen学习
作者: king、小白    时间: 2016-6-1 14:08
看看 学习
作者: ASD4141023    时间: 2016-6-4 18:02
真厉害!!!!!!

作者: Chris_Wu    时间: 2016-6-5 17:30
戳开看看

作者: suhang    时间: 2016-6-7 20:24
xiexiefenxiang
作者: qqikufei    时间: 2016-7-18 20:46
看看 学习
作者: TaoT    时间: 2016-7-18 23:12
认为亲人任务而威尔额外热热污染
作者: gdutyong    时间: 2016-7-19 15:59
6666666666666
作者: 18222929637    时间: 2016-7-20 22:02
希望学到东西,看看。
作者: 119    时间: 2016-7-28 21:18
111十个字我要是各自

作者: 麻辣琛子    时间: 2016-8-11 21:51
感谢分享
作者: ZakZhou    时间: 2016-9-8 11:57
不错不错
作者: 自在熊    时间: 2016-10-4 02:22
这个应该是难点 先记下
作者: will123    时间: 2016-10-19 23:59
IOS 深拷贝和浅拷贝的详解
xuexile
作者: wmymz    时间: 2016-10-24 16:24
谢谢分享
作者: shipanfeng    时间: 2016-10-25 13:32
谢谢分享
作者: 天天for天天    时间: 2016-10-25 13:59
重新学习一下深浅拷贝
作者: 天天for天天    时间: 2016-10-25 14:06
重新学习一下深浅拷贝的知识
作者: 天天for天天    时间: 2016-10-25 14:36
还能不能叫我好好学习了

作者: 天天for天天    时间: 2016-10-25 14:38
ios的路在何方现在学的模棱俩可的
作者: newu    时间: 2016-10-25 15:21
认为亲人任务而威尔额外热热污染
作者: amos1001    时间: 2016-10-25 18:09
到对是什么呢?

作者: HuyaRC    时间: 2016-11-7 09:20
收藏收藏收藏收藏收藏收藏收藏
作者: 不服输的少年    时间: 2016-11-12 09:30
赞哦,哎哟不错哦,写的很棒
作者: Vincent丶L    时间: 2016-11-13 15:58
6666666666666

作者: 冰一    时间: 2016-11-22 13:07
回复h h h h h h j j j j j j j j j
作者: linfuran    时间: 2016-11-22 23:38
学习参考。感谢分享
作者: wq920111    时间: 2016-11-23 14:06
222222了我的;不就基本没出门彩笔;

作者: geniuswen    时间: 2016-12-1 16:21
不错不错
作者: 自在熊    时间: 2016-12-17 21:24
谢谢楼主分享
作者: zhengyawei    时间: 2016-12-19 12:39
为什么看不成

作者: mrwendao    时间: 2016-12-21 23:21
看起来不错啊
作者: 我狂者    时间: 2017-2-22 11:04
即初中的基础,再次看一遍
作者: goldwolf    时间: 2017-3-7 22:55
aaasdfasdf
作者: dongrangg    时间: 2017-4-14 00:02
怎么看啊

作者: q360648588    时间: 2017-4-27 14:37
sssssssssssssssssssss
作者: IAMEASON    时间: 2017-8-23 10:16
学习一下
作者: a1137611824    时间: 2017-9-14 20:40
挺好的。。。。。     。。。
作者: 任性的肉夹馍    时间: 2017-9-19 09:31
心魄,路 ins 牛
作者: Charlin    时间: 2017-12-27 16:43
对于一些原理的东西确实比较难以分清
作者: HanTang    时间: 2017-12-28 11:03
重点儿得记下

作者: taiyang799    时间: 2018-3-20 00:29
谢谢分享
作者: wolfhous    时间: 2018-4-11 11:27
1234567890234567890
作者: baby14    时间: 2018-7-15 10:27
多谢分享
作者: 金木花    时间: 2019-4-18 00:04
谢谢分享
作者: Kdoat    时间: 2020-3-30 19:39
谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2