OC编码规范
一、命名規范
1.類:
(1)首字母大寫,后續單詞首字母大寫。
(2)類名末尾要包含此類的類型,比如RootView,RootViewController。
2.屬性
(1)屬性名稱首字母小寫,后續首字母大寫;
(2)使用@property,要保持必要的空格,如:@property?(nonatomic, strong);
(3)如果在@implementation內聲明全局變量,則使用下劃線前綴,局部變量不需要使用下劃線前綴;
(4)禁止使用a、b、c這樣的變量命名,要見詞達意;
(5)屬性命名時,要將屬性類型編寫到屬性名中,使讀者看到變量名即可知道這是個什么類型的變量,比如:usersDict,usersArray等。
3.方法:
(1)-或者+后加一空格;
(2)方法名首字母小寫,后續單詞首字母大寫;
(3)參數名首字母小寫,后續單詞首字母大寫;
(4)參數類型如果帶有*號,則參數類型和*號之間加一空格;
(5)如果方法太長、參數過多,可以換行冒號對齊,方法調用也一樣;
(6)非重寫系統方法時,不要使用is、set和get前綴;
(7)可以使用 can,should,will等詞來協助表達存取方法的意思,但不要使用do和does;
(8)不可以省略關鍵詞;
(9)盡量讓方法的命名讀起來像一句完整的話,能夠傳達出方法的意思;
4.宏定義:
宏定義以k開頭,第二個字母大寫,后續單詞首字母大寫。
5.公共:
(1)單詞盡量通俗易懂,避免引起歧義,具體表述要和實際功能保持一致;
(2)除了廣為人知含義的縮寫,比如info、msg、UI、HTTP這類以外,盡量不要使用單詞縮寫,要寫全拼,不要擔心方法太長,清晰最重要。
二、每一行的最大長度
在 Xcode > Preferences > Text Editing > Page guide at column:中將最大行長設置為100,過長的一行代碼將會導致可讀性問題。
三、縮進和大括號
1.統一使用四個空格作為縮進。如果以Tab來進行縮進控制,請在Xcode中設置Tab縮進為4個空格。
2.所有大括號另起一行。
3.在if判斷或者for循環中,就算僅有一行邏輯代碼,也不能省略大括號的使用。
四、注釋
1.注釋很重要,過多過少都不合適,不能沒有,也不能喧賓奪主。
2.變量、方法名前要加注釋加空行,不要使用后置注釋的方式。
3.方法內部,按照邏輯步驟分塊,每塊添加注釋;
4.除了方法內部第一條注釋以外,注釋上部保留一空行,避免代碼和注釋混為一片。
5.頭文件使用標準的多行注釋格式,實現文件中僅使用雙斜杠注釋即可。
6.注意注釋是為了讓別人看懂,而不是僅僅你自己。
五、使用統一前綴
1.一個項目內根據實際意義定義前綴;
2.項目內所有源文件、資源文件(包含圖片)統一使用前綴,避免項目間沖突;
3.源文件內部的宏定義同樣需要使用統一前綴,如下;k +前綴 + 實際意義;
六、類頭文件編寫規范
1.宗旨:頭文件是寫給使用者看的,在滿足使用者需求的前提下,頭文件元素越少越好,將沒有必要讓使用者看到的元素放到實現文件中,這樣處理,能夠減少使用者的學習成本,而且減少使用錯誤率。
2.頭文件內容添加順序:
(1)版權注釋 (2)頭文件導入 (3)宏定義 (4)枚舉定義 (5)協議定義 (6)類定義開始 (7)類所屬變量定義 (8)類所屬方法定義 (9)類定義結束
3.各個內容區之間都以一空行分割。避免代碼一大片混在一起。
4.如果方法太多,可以使用#pragma mark對代碼分區分塊,方便閱讀代碼。
七、類實現文件編寫規范
1.實現文件內容添加順序
(1)版權注釋 (2)頭文件導入 (3)宏定義 (4)靜態變量定義 (5)枚舉定義 (6)類擴展定義開始 (7)類擴展的變量 (8)類擴展的方法 (9)類擴展結束 (10)類實現開始 (11)類實現方法 (12)類實現結束
2.各個內容區之間都以一空行分割。避免代碼一大片混在一起。
3.類全局變量聲明方式:以@property方式添加到類擴展定義中,不在@implementation中定義全局變量的方式。這樣處理可以統一使用self點操作,對于全局變量的辨認度有大幅提高,
4.對于方法的封裝,有幾點規范:
(1)方法的單一職責:單個方法的職責盡量單一,盡量抽離公共邏輯,方法盡量復用。
(2)方法實現行數:一個方法的最大行數100行,如果一個方法的實現超過一百行,則說明需要進行邏輯拆分了。
(3)方法和方法之間要有一空行分割。
5.要使用#pragma mark將各個方法按照邏輯功能分區,公共方法單獨分區。方便閱讀和掌握代碼結構。
八、#pragma mark格式
使用"#pragma mark -?內容"方式,此行上下都要留空行。
九、Block編寫規范
1.除非必要,不要使用weakSelf。百分之九十九的情況不需要使用weakSelf,我們要自己維護好block的引用關系,讓block適時釋放。
2.跟之前大括號的規范一樣,block中的大括號也要另起一行,^保留在原行末尾。
3.如果 block過于龐大,應該單獨聲明成一個變量來使用。
總結
- 上一篇: Sqlite3中replace语句用法详
- 下一篇: oracle中having作用,orac