作者ashinet (冲啊~)
看板MacDev
标题[问题] 请教一个变数名称宣告的问题
时间Wed Dec 1 14:34:06 2010
各位好
在有些范例里面可以看到变数名称宣告前面加一个底线
请问加底线在ob-c里面有什麽特殊的用途吗?
感谢!
例如: NSMutableArray *_thingsToLearn;
为何不直接用
NSMutableArray *thingsToLearn;
from
http://www.raywenderlich.com/2033/
core-graphics-101-lines-rectangles-and-gradients
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.82.105.125
1F:→ uranusjr:我猜这人之前是写 C++ 的...C++ setter/getter functions 12/01 15:48
2F:→ uranusjr:和变数不能同名, Objective-C 没这问题, 其实不加 _ 没差 12/01 15:48
3F:推 aecho:obj-c没有namespace,所以只好自己找方法避开命名冲突。 12/01 20:08
4F:→ aecho:而apple的官方文件,有一份会谈到这个命名的prefix,suffix 12/01 20:09
5F:→ aecho:的惯例,他会希望你前面不要加_,而是加在最後面, 12/01 20:09
6F:→ aecho:或是其它的prefix。原因其实也很简单… 12/01 20:09
7F:→ aecho:那种命名惯例被apple用走了,他怕你会跟他冲突到~~ 12/01 20:10
8F:→ aecho:所以不要跟他一样在变数前加"_" 12/01 20:10
9F:推 aecho:至於加在最後面的范例程式,我发现现在new一个有CoreData 12/01 20:12
10F:→ aecho:的project,他的变数命名就是变数最後面带着"_" 12/01 20:12
11F:→ zonble:会在前面加底线的通常是成员变数,用来好分辨是在 method 12/02 00:55
12F:→ zonble:里头用的变数,还是成员变数。不过现在苹果建议不要加,因 12/02 00:55
13F:→ zonble:为这个惯例已经被苹果自己用掉了。 12/02 00:55
14F:→ zonble:Google 的 objc style 则是在成员变数後面加底线 12/02 00:56
16F:→ zonble:话说以前还需要特别用这种方法区隔成员变数,是 Xcode 2 的 12/02 00:57
17F:→ zonble:时候,IDE 功能还顶逊的。但是 Xcode 3 会自动帮你把成员 12/02 00:57
18F:→ zonble:变数用不同的颜色标记出来 12/02 00:58
19F:→ ashinet:哇!感谢各位先进的解答!好详细,这样整个懂了!!!! 12/02 09:15