黑马程序员技术交流社区

标题: 深浅复制 [打印本页]

作者: arui12580    时间: 2014-12-10 02:36
标题: 深浅复制
看了半天没看懂,我想问下,什么是深浅复制?
作者: 邹志鹏    时间: 2014-12-10 08:54
同样的疑问,请大神讲解,还有什么时候用strong,什么时候用weak也不是很清楚~!
作者: 楚燮哥哥    时间: 2014-12-10 09:11
可以理解为浅复制是指针复制,比如对“A”字符串对象进行浅复制,就会多了一个指向该对象内存的指针,而深复制会在内存中再分配一个空间给“A”,也就是说多了一个对象
作者: 楚燮哥哥    时间: 2014-12-10 09:13
邹志鹏 发表于 2014-12-10 08:54
同样的疑问,请大神讲解,还有什么时候用strong,什么时候用weak也不是很清楚~! ...

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

那什么叫做互相指向的对象?
作者: keycola    时间: 2014-12-10 10:10
互相指向就是,互相拥有,如Person这个类拥有card这个对象,而 card又必须有一个属性是card是哪个人的,就拥有Person 这个属性




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