关于oc的retain copy

来源:互联网 发布:java applet程序实例 编辑:程序博客网 时间:2024/04/30 18:42
推荐NSString类型的属性用copy的,

既然说了,就多说几句。

因为如果你用retain, 你保证不了调用者是给你传的是NSString还是NSMutableString,
如果传的是NSMutableString, 那你的这个NSString属性内容就有可能受调用者的影响,
而NSString的属性,通常都是不希望被调用者改变的。

不只是NSString,其他的不可变类, NSArray, NSDictionary, NSSet等,都是推荐用copy的.

并且对于copy的属性,如果你传的是NSString, NSString 的copy实现就是retain,
如果传的是NSMutableString, 它的copy才是真的按字节拷贝。

所以对于copy属性,不用担心其性能。

故对于不可变类的类型属性,放心的一律用copy属性吧.
原创粉丝点击