您当前的位置: 首页 > 

Objc中为何某些类的属性要设置为copy而不是strong?

发布时间:2016-02-21 16:03:10 ,浏览量:0

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

不知道大家是否注意,我们再使用一些第三方类的时候大多数情况下对象属性的type都是strong,但是某些类却设置成了copy类型,这是为什么?

看似很细小的改变其实是有其用意的.

copy和strong之间的区别很清楚,前者只是直接引用一个对象,而后者却是引用一个对象的拷贝.

比如如下示例:

#import  @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!

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    108697博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0473s