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,减少对上下文的依赖。