自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Cocoa 編碼指南 為實(shí)例變量和數(shù)據(jù)類型命名

移動(dòng)開發(fā) iOS
在面向?qū)ο筌浖斓脑O(shè)計(jì)過程中,開發(fā)人員經(jīng)常忽視對(duì)類、方法、函數(shù)、常量以及其他編程接元素的命名。本節(jié)討論為實(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文件的例子

  1. typedef enum _NSMatrixMode {   
  2.     NSRadioModeMatrix           = 0,   
  3.     NSHighlightModeMatrix       = 1,   
  4.     NSListModeMatrix            = 2,   
  5.     NSTrackModeMatrix           = 3   
  6. } NSMatrixMode;  

請(qǐng)注意,在上述例子中,typedef標(biāo)簽不是一定要具有的。

您也可以創(chuàng)建匿名的枚舉類型來表示諸如位掩碼這樣的事物。例如:

  1. enum {   
  2.     NSBorderlessWindowMask      = 0,   
  3.     NSTitledWindowMask          = 1 << 0,   
  4.     NSClosableWindowMask        = 1 << 1,   
  5.     NSMiniaturizableWindowMask  = 1 << 2,   
  6.     NSResizableWindowMask       = 1 << 3   
  7. };  

使用const 創(chuàng)建的常量

請(qǐng)使用const 來創(chuàng)建浮點(diǎn)值常量。如果某個(gè)整數(shù)值常量和其他的常量不相關(guān),您也可以使用const來創(chuàng)建,否則,則應(yīng)使用枚舉類型。

下面的聲明展示了const常量的格式:

  1. 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)該使用大寫字符表示。例如:

  1. #ifdef DEBUG  

請(qǐng)注意,編譯器定義的宏,其開頭和結(jié)尾要具有兩個(gè)下劃線字符。例如:

  1. __MACH__  

對(duì)于通告名稱或字典關(guān)鍵字的字符串,請(qǐng)將其定義為常量。通過使用字符串常量,編譯器可以驗(yàn)證字符串是否被正確賦值(也就是說, 編譯器將執(zhí)行拼寫檢查)。Cocoa框架提供很多字符串常量的例子,例如:

  1. 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)行組合:

  1. [Prefix] + [UniquePartOfName] + Exception  

異常名稱中的具有唯一性的那部分,其組成詞應(yīng)該拼寫在一起, 并且每個(gè)單詞的首字符要大寫。下面是一些例子:

  1. NSColorListIOException   
  2. NSColorListNotEditableException   
  3. NSDraggingException   
  4. NSFontUnavailableException   
  5. 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í),其名稱按如下的方式組合:

  1. [Name of associated class] + [Did | Will] + [UniquePartOfName] + Notification  

例如:

  1. NSApplicationDidBecomeActiveNotification   
  2. NSWindowDidMiniaturizeNotification   
  3. NSTextViewDidChangeSelectionNotification   
  4. 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

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-07 10:29:35

Cocoa 方法 框架

2011-07-07 10:39:07

Cocoa 函數(shù)

2011-07-07 10:07:19

Cocoa 框架

2023-10-17 07:57:56

Python數(shù)據(jù)類型

2024-01-12 09:00:22

Swift常量數(shù)據(jù)類型

2022-03-01 23:31:29

Python編程語言變量

2011-08-04 09:56:30

Objective-C 變量 數(shù)據(jù)類型

2009-06-24 08:04:18

Hibernate基礎(chǔ)核心接口數(shù)據(jù)類型

2021-04-05 08:22:54

Python進(jìn)制數(shù)據(jù)類型

2018-11-15 09:45:47

JavaScript數(shù)據(jù)類型變量

2023-03-27 10:04:27

數(shù)據(jù)類型浮點(diǎn)型布爾型

2009-08-14 13:52:18

C#判斷數(shù)據(jù)類型

2023-05-26 00:02:31

SDS數(shù)據(jù)編碼

2020-10-26 13:46:07

Java基礎(chǔ)入門篇

2013-05-10 15:27:07

R語言

2011-07-07 10:50:09

Cocoa 框架

2011-06-17 16:23:49

Cocoa蘋果

2011-07-07 13:30:32

Cocoa Core

2021-01-13 05:18:50

數(shù)據(jù)類型性能

2019-08-12 11:40:48

數(shù)據(jù)庫SQLite3數(shù)據(jù)類型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)