回答

0

蘋果喜歡使用下劃線表示「私人」,根據Coding Guidelines for Cocoa

避免使用下劃線作爲前綴意味着私人,尤其是在方法。 Apple保留使用此慣例。第三方使用可能導致名稱空間衝突;他們可能無意中用自己的方法凌駕現有的私人方法,造成災難性的後果。

用下劃線開頭的方法名是根據The Objective-C Programming Language保留(這意味着他們保留的,即使你不使用可可,大概):

以「_」開頭

方法名,一單個下劃線字符,保留供Apple使用。

此外,C/C++約定是(通常)爲實現保留前導下劃線。很多人誤解了這一點,並且把_用於「私人」的任何事情;導致我們的代碼庫中大量的_FooLog()調用氾濫,即使它調用未定義的行爲。

做到這一點的唯一原因是阻止直接在你自己的班級中接觸伊娃。使用@private阻止來自其他類的ivar訪問。

2

有一些開發商誰使用通過下面的方法「藏」有高德的以下約定:

@interface 

@private 
NSString *_myString 
@property (nonatomic, retain) NSString *myString; 

@implementation 
@synthesize myString = _myString. 

這樣做是不允許的伊娃直接訪問與強制通過屬性的myString所有訪問。它是隱藏你的課堂內部並遵守面向對象的封裝原則的一種方式。

+1

Disallow是一個強大的詞,它使得它在視覺上顯而易見的是你正在訪問iVar,而不是訪問者。沒有什麼會阻止用戶訪問'_myString'。 – 2010-08-23 00:51:11

+0

@Marcus ...除了@private指定! – ennuikiller 2010-08-23 00:57:47

+0

從課堂上,還是從其他課上?班級應該知道它的內部;其他類不能訪問@私人ivars。 – 2010-08-23 00:58:33

相關問題