一个Objective-C的只读属性需要指定strong或copy吗?

10
如果我有一个只读的字符串属性,在声明中是否有必要指定strong(或retain)或copy? 如果我不指定,其中一个会被默认吗?
在我看来,拥有属性只有在你有一个setter时才有用。
@property (nonatomic, readonly) NSString *name;

如果没有指定,则默认为“assign” - Bryan Chen
1
请参考类似讨论:https://dev59.com/Hmox5IYBdhLWcg3wJxL4 - Monolo
1个回答

16

这基本上是正确的。对于一个只读属性,strongretainweakassign都没有影响。但是,如果你在别处也声明该属性为readwrite(最常见的是在.m文件中的匿名类别中),那么其他修饰符需要匹配。


好的回答!但是,如果只读属性没有getter并且在内部未重新声明为readwrite,则strong也应该适用于属性,因为它现在有一个ivar,这正确吗? - Zack Zhu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接