关于拷贝的基本认识
博客专区 > 0_0Loong 的博客 > 博客详情
关于拷贝的基本认识
0_0Loong 发表于2年前
关于拷贝的基本认识
  • 发表于 2年前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

从复制的层面上讲:

retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。


copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制,

         引用计数每次加一。始终返回一个不可变对象。


mutableCopy:始终是深复制,引用计数不改变。始终返回一个可变对象。


 而复制的概念上区别:

浅 复 :在复制操作时,对于被复制的对象的每一层复制都是指针复制。

深 复 :在复制操作时,对于被复制的对象至少有一层复制是对象复制。

完全复制:在复制操作时,对于被复制的对象的每一层复制都是对象复制。


在这里就可以解释之前一个问题:我们在定义NSString为retain类型的类属性后去设置属性值之后我们的计数器不会加一。这里是因为,从某种程度上讲NSString是一个静态的常量在这样进行浅复制是不成立。



标签: 拷贝
共有 人打赏支持
粉丝 6
博文 49
码字总数 56160
×
0_0Loong
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: