iOS NSString 为什么要使用copy,而不是retain?
来源:互联网 发布:达内 北京php培训班 编辑:程序博客网 时间:2024/05/30 23:01
原文链接:http://blog.csdn.net/jaywon/article/details/9260351
1、首先如果使用retain,只是引用计数+1,并没有生成新的对象,所以效率好
2、但是使用copy安全。因为NSString 为 NSMutableString 的基类,如果将NSMutableString 以retain的形式赋值给NSString后,后续修改NSMutableString会导致NSString内容的变化,这通常不是我们希望的,所以NSString要使用copy。比如:
我们把mName的值 “wang” 赋给了p.name,而如果p里面的name使用的是retain,那么只是将mName的引用计数+1,这时候p.name的值是 ”wang“
紧接着我们在下面把mName的值设置为“chen”,结果你再打印p.name,这时候它的值也会变成chen,这是我们不想见到的。
使用copy就不会有这个问题。
0 0
- iOS NSString 为什么要使用copy,而不是retain?
- NSString 为什么要使用copy,而不是retain?
- NSString为什么要使用copy,而不是retain?
- NSString 为什么使用copy,而不是retain?
- 为什么 NSString 要用 copy 修饰,而不是 retain
- NSString为什么使用copy
- NSString,NSMutableString使用retain, copy理解
- NSString,NSMutableString使用retain, copy理解
- NSString,NSMutableString使用retain, copy理解
- NSString,NSMutableString使用retain, copy理解
- iOS 开发 NSString(NSDictory,NSArray)为什么用copy修饰,而不是用strong修饰
- 为什么delegate属性使用delegate而不是retain?
- 为什么delegate属性使用delegate而不是retain?
- 为什么delegate属性使用assign而不是retain?
- 为什么delegate属性使用assign而不是retain?
- 为什么delegate属性使用assigne而不是retain?
- 为什么delegate属性使用assign而不是retain?
- NSString retain or copy
- PHP写文件——将用户提交的数据保存到服务器的文件中
- GitHub 优秀的 Android 开源项目
- Apache 2.4.16 版本 编译安装步骤
- 关于线程调用Spring注解对象报空指针异常
- 使用storyboard时需注意的几点
- iOS NSString 为什么要使用copy,而不是retain?
- 可以将openerp改造成java版的工具(基于XML)
- JavaScript中一些常用API使用方法简析
- 小练习上机题
- Notepad++巨大灾难!史诗级错误~
- Python不需要预先定义变量
- 解决跨域访问(服务器端、Js端)
- GPX文件格式适用于GPS定位的模拟以及生成文件
- Java基础——反射