码迷,mamicode.com
首页 > 其他好文 > 详细

OC语法--问NSString属性声明中的copy和retain具体区别

时间:2015-04-24 14:24:28      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:copy   深拷贝   浅拷贝      

问NSString属性声明中的copy和retain具体区别
copy是将源对象release然后新对象copy在付给源对象

retain是将源对象release然后新对象retain再付给源对象

根本区别就是对象进行深拷贝时copy要开辟新的存储空间,浅拷贝时效果相同。引用计数方面retain是源对象引用计数加1,copy当

是浅复制时源对象引用计数加1,深复制时源对象引用计数不变,新对象引用计数加1.

技术分享   NSString *str = @"hello";

  // copy原模原样的复制

    NSMutableString *strM = [str copy];

//    [strM appendString:@" 123"];是不能运行的 因为copy只是原样复制的,内存地址是一样的。并不能认为换了类型指向了他,他就是这个东西

深复制:要变

浅复制:不变

OC语法--问NSString属性声明中的copy和retain具体区别

标签:copy   深拷贝   浅拷贝      

原文地址:http://blog.csdn.net/u010804473/article/details/45245133

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!