Cocoa 編碼指南 為實(shí)例變量和數(shù)據(jù)類型命名
Cocoa 編碼指南 為實(shí)例變量和數(shù)據(jù)類型命名是本文要介紹的內(nèi)容,本節(jié)描述實(shí)例變量、常量、異常、以及通知的命名約定。先來看內(nèi)容。
實(shí)例變量
在為某個(gè)類添加實(shí)例變量時(shí),請(qǐng)記住下面幾個(gè)因素:
避免創(chuàng)建公共實(shí)例變量。開發(fā)人員應(yīng)該關(guān)心對(duì)象的接口,而不是對(duì)象的數(shù)據(jù)存儲(chǔ)方式這樣的細(xì)節(jié)。
請(qǐng)把實(shí)例變量顯式聲明為@private或者@protected。如果您預(yù)期所提供的類會(huì)被子類化,并且子類可能需要父類的數(shù)據(jù), 則請(qǐng)使用@protected指令來修飾實(shí)例變量。
請(qǐng)確保實(shí)例變量的名稱能夠扼要地描述它所保存的屬性。
如果實(shí)例變量將作為類對(duì)象的可訪問屬性,則請(qǐng)務(wù)必為其編寫存取方法。
常量
根據(jù)常量創(chuàng)建方式不同,其命名規(guī)則也有所差異。
枚舉常量
請(qǐng)使用枚舉類型來表示一群相互關(guān)聯(lián)的整數(shù)值常量。
枚舉常量及其所屬的通過typedef定義的數(shù)據(jù)類型遵循和函數(shù)一樣的命名約定(請(qǐng)查看“為函數(shù)命名”一節(jié))。下面是一個(gè)取自NSMatrix.h文件的例子
- typedef enum _NSMatrixMode {
- NSRadioModeMatrix = 0,
- NSHighlightModeMatrix = 1,
- NSListModeMatrix = 2,
- NSTrackModeMatrix = 3
- } NSMatrixMode;
請(qǐng)注意,在上述例子中,typedef標(biāo)簽不是一定要具有的。
您也可以創(chuàng)建匿名的枚舉類型來表示諸如位掩碼這樣的事物。例如:
- enum {
- NSBorderlessWindowMask = 0,
- NSTitledWindowMask = 1 << 0,
- NSClosableWindowMask = 1 << 1,
- NSMiniaturizableWindowMask = 1 << 2,
- NSResizableWindowMask = 1 << 3
- };
使用const 創(chuàng)建的常量
請(qǐng)使用const 來創(chuàng)建浮點(diǎn)值常量。如果某個(gè)整數(shù)值常量和其他的常量不相關(guān),您也可以使用const來創(chuàng)建,否則,則應(yīng)使用枚舉類型。
下面的聲明展示了const常量的格式:
- const float NSLightGray;
使用枚舉類型聲明的常量遵循和函數(shù)相同的命名約定。(請(qǐng)參考“為函數(shù)命名”一節(jié))。
其他類型的常量
通常情況下, 請(qǐng)不要使用#define預(yù)處器理命令創(chuàng)建常量。對(duì)于整數(shù)值常量,請(qǐng)使用枚舉類型創(chuàng)建,而對(duì)于浮點(diǎn)值常量,請(qǐng)使用const修飾符創(chuàng)建,這和前述的原則一樣。
有些符號(hào),預(yù)處理器需要對(duì)其進(jìn)行計(jì)算,以便決定是否要對(duì)某一代碼塊進(jìn)行處理,則它們應(yīng)該使用大寫字符表示。例如:
- #ifdef DEBUG
請(qǐng)注意,編譯器定義的宏,其開頭和結(jié)尾要具有兩個(gè)下劃線字符。例如:
- __MACH__
對(duì)于通告名稱或字典關(guān)鍵字的字符串,請(qǐng)將其定義為常量。通過使用字符串常量,編譯器可以驗(yàn)證字符串是否被正確賦值(也就是說, 編譯器將執(zhí)行拼寫檢查)。Cocoa框架提供很多字符串常量的例子,例如:
- APPKIT_EXTERN NSString *NSPrintCopies;
在實(shí)現(xiàn)文件中,NSString的實(shí)際值被指定為常量。(請(qǐng)注意,APPKIT_EXTERN宏經(jīng)過計(jì)算之后是Objective-C中的extern關(guān)鍵字)。
異常和通告
異常和通告的名稱遵循相似的命名規(guī)則,但是我們?yōu)槎咄扑]的使用模式并不相同。
異常
盡管您可以隨意地將異常(即NSException類和一些相關(guān)聯(lián)的函數(shù)所提供的機(jī)制)用于任何目的,但是通常情況下,cocoa不會(huì)利用他們來處理常規(guī)的、可預(yù)期的錯(cuò)誤條件。這類錯(cuò)誤應(yīng)使用諸如nil、 NULL、 NO這樣的返回值或者錯(cuò)誤碼來表示。通常,Cocoa把異常用于表示諸如數(shù)組索引越界這樣的編程錯(cuò)誤。
異常使用全局的NSString對(duì)象來標(biāo)識(shí),其名稱按如下的方式進(jìn)行組合:
- [Prefix] + [UniquePartOfName] + Exception
異常名稱中的具有唯一性的那部分,其組成詞應(yīng)該拼寫在一起, 并且每個(gè)單詞的首字符要大寫。下面是一些例子:
- NSColorListIOException
- NSColorListNotEditableException
- NSDraggingException
- NSFontUnavailableException
- NSIllegalSelectorException
通告
如果某個(gè)類含有委托,則通過所定義的委托方法,類的委托可以收到大部分通告。通告的名稱應(yīng)該反映相應(yīng)的委托方法。例如,一旦應(yīng)用程序發(fā)送一則NSApplicationDidBecomeActiveNotification的通告,則全局NSApplication對(duì)象的委托就會(huì)自動(dòng)進(jìn)行注冊(cè),這樣它就可以接收到一條applicationDidBecomeActive:的消息。
通告使用全局的NSString對(duì)象進(jìn)行標(biāo)識(shí),其名稱按如下的方式組合:
- [Name of associated class] + [Did | Will] + [UniquePartOfName] + Notification
例如:
- NSApplicationDidBecomeActiveNotification
- NSWindowDidMiniaturizeNotification
- NSTextViewDidChangeSelectionNotification
- NSColorPanelColorDidChangeNotification
小結(jié):關(guān)于Cocoa 編碼指南 為實(shí)例變量和數(shù)據(jù)類型命名的 內(nèi)容介紹完了,希望本文對(duì)你有所幫助!推薦幾篇相關(guān)文章:
Cocoa 編碼指南 代碼命名基礎(chǔ): http://mobile.51cto.com/iphone-274085.htm
Cocoa 編碼指南 為函數(shù)命名: http://www.scjtxx.cn/php/viewart.php?artID=274108
Cocoa 編碼指南 為方法命名: http://www.scjtxx.cn/php/viewart.php?artID=274104
Cocoa 編碼指南 為實(shí)例變量和數(shù)據(jù)類型命名:http://www.scjtxx.cn/php/viewart.php?artID=274094
Cocoa 編碼指南 框架開發(fā)者使用技巧和技術(shù)http://www.scjtxx.cn/php/viewart.php?artID=274094