Preferred way to name instance variable in Objective C
Possible Duplicate:
When do you make an underscore in front of an instance variable?
与目标C中一样,实例变量在默认情况下是受保护的,您首选的命名方法是什么?
假设您有一个变量名,下面三种方法有其支持者。
福。我一直鄙视"foo"或"foo"的风格。
苹果公司的可可编码指南建议您避免使用下划线前缀:
Avoid the use of the underscore
character as a prefix meaning private,
especially in methods. Apple reserves
the use of this convention. Use by
third parties could result in
name-space collisions; they might
unwittingly override an existing
private method with one of their own,
with disastrous consequences.
由于我不知道任何后面的下划线约定,我不知道为什么不应该只使用foo。
根据
我喜欢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @interface MyClass () @property (nonatomic, retain) NSArray *myArray; @end @implementation @synthesize myArray = myArray_; @synthesize myPublicString = myPublicString_; - (void) dealloc { [myArray_ release]; myArray_ = nil; [myPublicString_ release]; myPublicString_ = nil; } .... @end |
因为我似乎是少数人,所以为了平衡的利益,我会把我的两分钱投进去:
我喜欢下划线。我认为它一眼就能使代码语义更具可读性。当然,语法突出显示也可以做到这一点,但我一直倾向于使用与IDE/主题无关的方法。一旦你习惯了,很高兴让这个小家伙立刻在你的脑袋里启动"直接进入一个IVAR"警报。
显然,这是非常主观的。
作为一个附录,下划线前缀对于方法名来说确实非常危险,编译器不会立即暴露冲突,但是如果您是下划线爱好者,使用后缀可能更好。
一般来说,为什么会有人用任何后缀或前缀来命名他们的私有变量呢?大多数现代工具都能很好地对它们进行不同的着色。我喜欢简单的foo。