大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! 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!