A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© arui12580 中级黑马   /  2014-12-10 02:36  /  847 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看了半天没看懂,我想问下,什么是深浅复制?

6 个回复

倒序浏览
同样的疑问,请大神讲解,还有什么时候用strong,什么时候用weak也不是很清楚~!
回复 使用道具 举报
可以理解为浅复制是指针复制,比如对“A”字符串对象进行浅复制,就会多了一个指向该对象内存的指针,而深复制会在内存中再分配一个空间给“A”,也就是说多了一个对象

点评

更正一下,浅复制是共用对象中的属性值,深复制是连对象中的值也拷贝一份  发表于 2014-12-10 13:50
回复 使用道具 举报
邹志鹏 发表于 2014-12-10 08:54
同样的疑问,请大神讲解,还有什么时候用strong,什么时候用weak也不是很清楚~! ...

当定义一个实例变量是对象时用Strong,如果有两个互相指向的对象时其中的一个就要用weak,这样做是为了避免出现循环引用导致内存无法回收,因为ARC的机制下,只要有强指针指向(也就是设置了Strong的对象)的对象就不会被自动回收
回复 使用道具 举报
楚燮哥哥 发表于 2014-12-10 09:13
当定义一个实例变量是对象时用Strong,如果有两个互相指向的对象时其中的一个就要用weak,这样做是为了避 ...

那什么叫做互相指向的对象?
回复 使用道具 举报
互相指向就是,互相拥有,如Person这个类拥有card这个对象,而 card又必须有一个属性是card是哪个人的,就拥有Person 这个属性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马