黑马程序员技术交流社区
标题:
关于copy的浅复制和深复制,大家来说说。
[打印本页]
作者:
hjy0260
时间:
2016-10-5 23:25
标题:
关于copy的浅复制和深复制,大家来说说。
如题!大家来说说,总结下
作者:
朱儿008
时间:
2016-10-14 23:13
浅复制————没有新对象的产生。是指将指向字符串的指针复制一份,此时就有了两个指针指向同一个字符串对象,这个过程就是浅复制;
深复制————有新对象的产生。将字符串本身复制一份,并将复制出来的新的字符串对象的地址返回,此时就有了两个指针,这两个指针分别指向内容相同,但地址不同的两个字符串对象,这个过程就是深复制。
只有对象是NSString的copy是浅复制,其他的都是深复制。
copy出来的都是不可变字符串,mutablecopy 出来的都是可变字符串。
以上是我的理解,不知道对不对 仅供参考。
作者:
hbpiaoyi
时间:
2016-10-15 09:30
朱儿008 发表于 2016-10-14 23:13
浅复制————没有新对象的产生。是指将指向字符串的指针复制一份,此时就有了两个指针指向同一个字符串对 ...
大部分人对shallow和deep复制的理解都是错的,根据苹果官方文档的解释,shallow和deep复制都会产生新对象,区别在于属性的处理。
比如有一个人对象,人对象有一个属性是书对象,如果对人对象进行shallow复制,则只产生新的人对象,新旧人对象都指向同一个书对象;如果是deep复制,则会产生新的人对象和新的书对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2