oc深拷贝与浅拷贝

2018-03-10  本文已影响0人  grandhc

属性对应的所有权修饰符:

assign                         __unsafe_unretained 

copy                             __strong(赋值的是被复制的对象)

retain                             __strong

strong                            __strong        

unsafe_unretained         __unsafe_unretaoned

weak                __weak

retain 是指针拷贝,地址形同,内容当然相同,这个对象的retain值+1.

copy是内容拷贝,改变地址,复制内容,新对象的retain为1,旧对象没有发生变化。对于数组而言,就是copy了指向数组中对应元素的地址,这就是所谓的浅复制。

retain:setter方法对参数进行release旧值再retain新值,retainCount +1.

copy:setter方法进行copy操作,先release旧值,再copy出新对象,retainCount为1,减少对上下文的依赖。

上一篇下一篇

猜你喜欢

热点阅读