Objc中为何某些类的属性要设置为copy而不是strong?
来源:互联网 发布:阿里云怎么解绑手机号 编辑:程序博客网 时间:2024/06/05 00:24
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
不知道大家是否注意,我们再使用一些第三方类的时候大多数情况下对象属性的type都是strong,但是某些类却设置成了copy类型,这是为什么?
看似很细小的改变其实是有其用意的.
copy和strong之间的区别很清楚,前者只是直接引用一个对象,而后者却是引用一个对象的拷贝.
比如如下示例:
#import <UIKit/UIKit.h>@interface HyNameAndColorCell : UITableViewCell@property (copy,nonatomic) NSString *name;@property (copy,nonatomic) NSString *color;@end
我们看到name和color字符串对象属性使用的type都是copy.
这是因为,我们再将上述2各字符串对象传递给其实例变量后,很可能会改变其内容,别忘了NSMutableString也可以传递给NSString对象(但是反过来却不可以,不明白的自行度娘类和子类对象的赋值).
如果属性的type设置为copy,那么不管原有对象如何更改都不会影响HyNameAndColorCell实例变量的值了.That’s Why!
0 0
- Objc中为何某些类的属性要设置为copy而不是strong?
- NSString为何要用copy?而不是strong?
- ObjC类与属性的copy关键字
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- NSString类型的属性一般用copy修饰,而不是用strong来修饰。
- retain,assign,weak,strong,copy属性设置的区别
- 初探 属性的copy、strong
- objective-c中property 的属性strong,weak, retain, copy
- Spring Bean 的 scope属性为何要设置为prototype
- 初探属性的copy、strong 2
- property属性的weak,strong,copy,assign
- OC中与copy有关的那些事 一 (copy与声明NSString属性 : strong/copy 的关系)
- jQuery全屏滚动插件fullPage.js
- php curl参数详解
- Mac下Hexo+GitHub搭建博客图文教程
- Machine Learning - Regularized Logistic Regression
- Java中怎么获取键盘输入-Scanner
- Objc中为何某些类的属性要设置为copy而不是strong?
- uva1646
- 【慕课笔记】第三章 JAVA中必须了解的常用类 第4节 使用Date和SimpleDateFormat类表示时间
- 字符串匹配算法 BF算法或者简单匹配
- poj2777 我的第二道线段树
- GCC编译过程探索
- MyCat - 源代码篇(6)
- COCOS学习笔记--TexturePacker使用详解
- HTTP协议详解(真的很经典)