可能的重复:
可可 Objective-C 类中变量前面的下划线如何工作?
我注意到,在很多参考资料中,我发现很多时候,变量在 .h 文件中被命名为 _variable,然后在 .m 文件中被 @synthesize'd 为
@synthesize variable = _variable;
为什么要这样做?我缺少什么?
Thanks!
对此尚无共识。有些人喜欢使用它来清楚地分离出类变量,并且正如另一位响应者指出的那样,以避免与传入参数名称发生冲突。即使在 Apple 示例代码中,使用也是混合的。
但是,我非常不想使用_
前缀并有两个强有力的理由:
1)有些人认为_
是“私人”的良好指标。我的看法是,没有 setter/getter (属性)就不应访问任何类局部变量,因此它们都是私有的 - 鉴于为什么不以更易于阅读和使用自动完成的方式命名它们呢?参数名称中的任何重叠都会被编译器快速发现,并通过更周到的参数(或内部变量)命名来避免。
2)(更好的理由)-如果您在 XCode 中对内部类 var 使用“重构”,并且该内部类 var 的名称与用于访问它的属性相同,则属性和合成语句也将被重命名。如果对前缀为 的类变量使用重构_
,属性名称不会更改 - 只是综合映射到内部名称。我几乎不希望名称从属性到它公开访问的实际变量有所不同。仅此一点就让我永远不想使用_
作为变量前缀,因为能够移动名称几乎是提高代码清晰度所能做的最有用的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)