iOS OC命名規範

2021-09-08 04:05:07 字數 3353 閱讀 8211

正文:通過讀寫大量**我有自己的一套程式設計思路和習慣,自認為自己的編碼習慣還是不錯的,**結構也算清晰,因為我一直以來都是**看的多寫的多,但是總結的比較少,知識經常不成體系。以後多花點時間把自己的經驗和學習知識加以總結一下吧,這樣有利於去指導新人,也更有利於加深自己的知識認知。今天就從**規範入手總結一下ios開發中好的編碼規範吧。我們在開發中看別人的**的時候經常會去抱怨至少內心裡罵娘,其實別人看你的**也許也在抱怨你,我更深刻的意識到:高手和新手有**規範水平的差異,高手與高手之間有變成思想的差異,新手之間就在模仿中就更加凌亂了。因此團隊開發一定要有很好的且統一的編碼規範,這樣才有利於團隊開發與快速維護。今天先寫第一篇:《ios開發(oc)中的命名規範》

1.一般性原則:可讀性高(簡潔且清晰)和防止命名衝突(通過加字首來保證)。

objective-c 的命名通常都比較長, 名稱遵循駝峰式命名法. 乙個好的命名標準很簡單, 就是做到在開發者一看到名字時, 就能夠懂得它的含義和使用方法. 另外, 每個模組都要加上自己的字首, 字首在程式設計介面中非常重要, 可以區分軟體的功能範疇並防止不同檔案或者類之間命名發生衝突, 比如相簿模組(photogallery)的**都以pg作為字首: pgalbumviewcontroller, pgdatamanager.

**

點評

insertobject:atindex:

good

insert:at:

不清晰;要插⼊什麼?「at」表⽰示什麼?

removeobjectatindex:

good

removeobject:

不錯,因為⽅法是⽤用來移除作為引數的物件

remove:

不清晰;要移除什麼?

2.一致性

盡可能與cocoa程式設計接⼝命名保持一致。如果你不太確定某個命名的⼀致性,標頭檔案或參考文件中的範例,在使⽤多型方法的類中,命名的⼀致性⾮常重要。在不同類中實現相同功能的⽅法應該具有同的名稱。

**點評

– (nsinteger)tag

在 nsview, nscell, nscontrol 中有定義

– (void)setstrin**alue:(nsstring *)

在許多 cocoa classes 中都有定義

檔案的命名

檔案的副檔名應該如下:

.hc/c++/objective-c 的標頭檔案

.mojbective-c 實現檔案

.mmojbective-c++ 的實現檔案

.cc純 c++ 的實現檔案

.c純 c 的實現檔案

類別的檔名應該包含被擴充套件的類名,如:gtmnsstring+utils.h或``gtmnstextview+autocomplete.h``。

類的命名

類名(以及類別、協議名)應首字母大寫,並以駝峰格式分割單詞。

1.類的字首

1)所有類名、列舉、結構、protocol定義時最好加乙個統一的標示符,可以是專案縮寫,或者個人專案的名稱縮寫,例如都加上全大寫的hoo(我的姓氏)作為字首

2)根據功能模組可以在給功能模組的類新增功能模組的名稱字首,如使用者中心的profileviewcontroller.可以命名為hooucprofileviewcontroller.

2.類的字尾

所有protocol定義時,都加上字尾delegate 。如,hoorefreshviewdelegate,表示refreshview的協議;

所有的控制器都加上controller,所有的通知名都加上notification。

類別命名

類名+標識+擴充套件(uiimageview +hp+web)

例:如果我們想要建立乙個基於uiimageview 的類別用於網路請求,我們應該把類別放到名字是uiimageview+hpweb.h的檔案裡。uiimageview為要擴充套件的類名,hp為專屬標識,web為擴充套件的功能。

方法命名

方法名應遵守小駝峰原則,首字母小寫,其他單詞首字母大寫,每個空格分割的名稱以動詞開頭。執行性的方法應該以動詞開頭,小寫字母開頭,返回性的方法應該以返回的內容開頭,但之前不要加get。如:1

2

3

- (void)insertmodel:(id)model atindex:(nsuinteger)atindex;

- (instancetype)arraywitharray:(nsarray *)array;

正宗的ios開發者當然要以objective-c的方式命名列舉,如:

1

2

3

4

5

6

7

typedef ns_enum(nsinteger, uiviewanimationtransition) ;

變數名使用小駝峰法, 使變數名盡量可以推測其用途屬性具有描述性。別一心想著少打幾個字母,讓你的**可以迅速被理解更加重要。每個屬性命名都加上型別字尾,如,按鈕就加上button字尾,模型就加上model字尾。

@property (nonatomic, strong) uibutton *submitbutton;

1)類成員變數名

成員變數用小駝峰法命名並字首下劃線,如:uibutton *_submitbutton;

2)區域性變數名

遵守小駝峰命名規則,如:nsintegernumcompletedconnections =3;

以小寫k開頭,後面單詞首字母大寫,其餘小寫。如:

const float kmaxheigt = 100.0f;

如果是特殊含義的常量也建議加上字尾,如通知加上notification為字尾,如:

extern nsstring * const kloginsuccessnotification

資源檔案命名 (,本地化檔案)

這個資源命名方式,以功能為組織形式,是乙個很好的習慣,有利於檢視資源檔案。

原則:

iOS oc語言的命名規範

最近發現自己有乙個經驗主義的毛病,不太容易接受新的知識,這對從事技術研發的人來說不太合理,需要改之。正文 通過讀寫大量 我有自己的一套程式設計思路和習慣,自認為自己的編碼習慣還是不錯的,結構也算清晰,因為我一直以來都是 看的多寫的多,但是總結的比較少,知識經常不成體系。以後多花點時間把自己的經驗和學...

命名規範 C 命名規範約定

命名規則約定 序 號描述示例 1類命名混合使用大小寫,首字母大寫 classname 2型別定義,包括列舉和typedef,混合使用大小寫,首字母大寫 typename 3區域性變數混合使用大小寫,且首字母小寫,名字與底層資料型別無關,且應該反映其所代表的事物 localvariable 4子程式引...

程式規範 命名規範

這裡列舉我自己的命名規則,網上很多,但是這個是我目前自己的命名規範 每個單詞的首字母大寫,一般用名詞形式 如 circle goodobject highschool stringlist memorypool verylargebuffer 顯然,所有命名的乙個基本要求 顧名思義,通過名字,能夠反...