Object-C編碼規(guī)范V10_第1頁
Object-C編碼規(guī)范V10_第2頁
Object-C編碼規(guī)范V10_第3頁
Object-C編碼規(guī)范V10_第4頁
Object-C編碼規(guī)范V10_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Object-C 編碼規(guī)范編碼規(guī)范當前版本0.10密級機密機密文檔編號總頁數正文頁數附錄頁數0北京陸優(yōu)科技有限公司 java 編碼規(guī)范第1頁,共15頁編制人王春評審人批準人編制日期2014.09.02評審日期批準日期 修改履歷修改履歷序序號號狀狀態(tài)態(tài)版本版本修改內容修改內容修改修改位置位置修改人修改人日期日期評審評審人人日期日期批準批準人人日期日期王春1C0.10創(chuàng)建 Object-C 編碼規(guī)范文檔初稿。2014.09.0223456北京陸優(yōu)科技有限公司 java 編碼規(guī)范第2頁,共15頁7891011121314狀態(tài):狀態(tài):C創(chuàng)建文檔,A增加內容,M修改內容,D刪除內容目錄1 1引言引言.4

2、1.1目的.41.2適用范圍 .41.3定義、首字母縮寫詞和縮略語.42 2編碼規(guī)范編碼規(guī)范.42.1文件.42.2注釋.52.3編碼排版格式 .72.4命名規(guī)范 .9北京陸優(yōu)科技有限公司 java 編碼規(guī)范第3頁,共15頁2.5修改規(guī)范 .132.5.1.新增代碼行.132.5.2.刪除代碼行.132.5.3.修改代碼行.13北京陸優(yōu)科技有限公司 java 編碼規(guī)范第4頁,共15頁1 1引言引言1.11.1 目的目的統(tǒng)一規(guī)范 XCode 編輯環(huán)境下 Objective-C 的編碼風格,提高程序的可讀性、可測試性和可維護性,同時提高項目整體效率和研發(fā)交付物質量。遵循編碼規(guī)范有助于標準化程序結構

3、和編碼風格,使源代碼對于自己和別人都易讀、易懂。良好的編碼習慣除了代碼格式,詳細的注釋外,還應該包括使用有助于提高代碼效率的編碼方式。1.21.2 適用范圍適用范圍此文檔適用于所有 IOS 開發(fā)人員。1.31.3 定義、首字母縮寫詞和縮略語定義、首字母縮寫詞和縮略語 定義:術語定義 縮略語:名稱命名名稱命名2 2編碼規(guī)范編碼規(guī)范2.12.1 文件文件1.項目文件必須使用一個有意義的名字且前綴以 PRJ_。例如:XCcode 中下拉刷新的北京陸優(yōu)科技有限公司 java 編碼規(guī)范第5頁,共15頁項目文件被命名為PRJ_ PullDownRefresh.xcodeproj 。2.公共文件統(tǒng)一命名為P

4、ublic.h 。任何文件的命名盡量不要以中文命名。3.對于文件的目錄要按如下結構創(chuàng)建: -Document(文檔所在路徑) -Help(幫助文件所在路徑) -圖片等資源文件放在單獨的目錄與組(Group)中,如 Images。 -所有的 view 放在單獨的組(Group)中,如 Custom View。 -所有的 viewController 放在單獨的組中,如 viewControllers。 -引用外部文件或者某個單獨的功能時,放在單獨的組中,例如:程序中使用了 coverflow 功能,引用 openflow 的文件時,將其全部文件放在openFlow 這個組中。其 view 和 v

5、iewcontroller 等文件的組織不受上面所規(guī)定的影響。2.22.2 注釋注釋1.注釋可以采用 /* */ 和 / 兩種注釋符號,涉及到多行注釋時,盡量使用 /* */ 。2.對于一行代碼的注釋可放在前一行及本行上,不允許放在下一行,更不允許在一行語句的中間加入注釋。3.單元文件的文件頭注釋說明應按如下格式:/* Company:LuyouChina Co., Ltd.* CopyRight:2013-2014, LuyouChina Co., Ltd.* Author:白勇* CreateDate:2014-09-03* FileName::LYAppDelegate.h* Proje

6、ctName::鐵道培訓在線* Desc:*/北京陸優(yōu)科技有限公司 java 編碼規(guī)范第6頁,共15頁 4.方法前面的注釋遵循以下格式:如果某項沒有,則以 N/A 表示 例如:/* 函數名稱:-(BOOL)showFiveAndSixStairRoomCountByStatu 函數描述:顯示特定狀態(tài)下五樓和六樓的房間數 輸入參數:(NSString *)statu:某狀態(tài)。 輸出參數:(int *)roomCount :該狀態(tài)房間數量。 返回值:BOOL:操作是否成功。 */- (void)ShowFiveAndSixStairRoomCountByStatu:(NSString *)stat

7、u roomCount:(int *)_roomCount;或/* 函數名稱:-(NSUInteger)showFiveAndSixStairRoomCount 函數描述:顯示五樓六樓的房間數。 輸入參數:N/A 輸出參數:N/A 返回值:NSUInteger :房間數量。*/- (NSUInteger)showFiveAndSixStairRoomCount5.不必每行都加注釋,在 310 行左右的段落做注釋要好于每行都做注釋,顯而易見的代碼不加注釋。例如:If (!returnValue) /調用登錄過程失敗 無用的注釋 NSLog(”登錄失敗”);北京陸優(yōu)科技有限公司 java 編碼規(guī)范

8、第7頁,共15頁2.32.3 編碼排版格式編碼排版格式1.代碼的縮進應使用空格(SPACE),不能使用制表符(TAB),并且縮進以2 個字符為單位。2.中括弧的每一個括弧在源程序中要單獨占一行。 例如: /不正確用法 for (int i = 0; i 10 ; i+) /正確用法for (int i = 0; i b) /錯誤的寫法,邏輯判斷符號兩端沒有空格 if(a b) /正確的寫法d. .h 中協(xié)議前面有一個空格。e. .h 中成員聲明時,類型與變量之間有至少 1 個空格。*號靠近變量,不靠北京陸優(yōu)科技有限公司 java 編碼規(guī)范第8頁,共15頁近類型。f. property 后留 1

9、 個空格,()里面,逗號緊跟前一變量,與后一變量之間留 1 個空格。()外面,先留 1 個空格,再聲明屬性。g. 方法的+,-后面與()之間留 1 個空格。h. 返回類型與*之間留 1 個空格,方法參數中返回類型與*之間留 1 個空格。i.在多參數方法中,每個參數后面都有 1 個空格。4.每行只能有一個語句 例如 /不正確寫法 NSUInteger objectIndex, stuffCount; 或 objectIndex = objectIndex + 10, stuffCount = stuffCount + 20; 或 synthesize MyView, MyLabelView; /

10、正確寫法 NSUInteger objectIndex;NSUInteger stuffCount;或objectIndex = objectIndex + 10;stuffCount = stuffCount + 20;或synthesize MyView;synthesize MyLabelView;5.關于空行a. .h 中的空行 、文件說明與頭文件包含(#import)之間空 1 行1 、頭文件包含(#import)之間,如果需要分類區(qū)別,各類別之間空 1 行。2 、頭文件包含(#import)與class 之間空 2 行。3 、interface 與class 之間空 1 行。4北京

11、陸優(yōu)科技有限公司 java 編碼規(guī)范第9頁,共15頁 、頭文件里面,空 1 行開始聲明對象成員,如果需要分類區(qū)別,各類5別之間空 1 行。 、頭文件外,空 1 行書寫屬性,如果需要分類區(qū)別,各類別之間空 16行。 、屬性下面空 1 行開始寫方法,如果需要分類區(qū)別,各類別之間空 17行。 、方法完成后,空 1 行end。8 、如果需要聲明 protocol,空 2 行接著寫。通常 protocol 寫在end 后9面,但是聲明在interface 之前。b. .m 中的空行 、文件說明與頭文件包含(#import)之間空 1 行1 、頭文件包含(#import)之間,如果需要分類區(qū)別,各類別之間

12、空 1 行。2 、implementation 和synthesize 之間空 1 行, 如果需要分類區(qū)別,各3類別之間空 1 行。 、synthesize 與方法之間空 1 行。4 、方法與方法之間空 1 行。5c. 方法里面的空行 、變量聲明后需要空 1 行,如果需要分類區(qū)別,各類別之間空 1 行。1 、條件、循環(huán),選擇語句,整個語句結束,需要空 1 行。2 、各功能快之間空 1 行。3 、最后一個括弧之前不空行。4 、注釋與代碼之間不空行。5 、#pragma mark 與方法之間空 1 行。6d. 每行代碼最多不得操作 100 個字。設置如下:Xcode = Preferences =

13、 TextEditing = Page Guide at column /輸入 100 即可。2.42.4 命名規(guī)范命名規(guī)范2.4.1.保留字保留字北京陸優(yōu)科技有限公司 java 編碼規(guī)范第10頁,共15頁Objective-c 語言的保留字或關鍵詞應全部使用小寫字母,除下表中保留字外,private、protected、public、在類型說明中也作為保留字使用。還有nonatomanic,retain,readwrite,readonly 等也有特殊的使用場合。_Bool_Complex_Imaginaryautobreakbycopybyrefcasecharconstcontinued

14、efaultdodoubleelseenumexternfloatforgotoifininlineinoutintlongonewayoutregisterrestrictreturnselfshortsignedsizeofstaticstructsuperswitchtypedefunionunsignedvoidvolatilewhile2.4.2.方法方法1.方法的名稱應全部使用有意義的單詞組成,且以小寫字母開頭,多單詞組合時,后面的單詞首字母大寫。例如: -(void)getUserInformation2.設置類變量的內容的方法應使用 set 作為前綴,讀取變量的內容的方法應使用

15、 get作為前綴。 例如: -(void)getUserName; -(void)setUserName:(NSString *)userName;3.方法中的參數:第一個參數名稱要從函數名稱上攜帶出來,第二個參數的首字母小寫,多個單詞組合時,后面單詞首字母大寫。參數有別名時,參數別名與參數名一致,但參數名前綴以_。參數別名與前一參數保留 1 個空格。參數無別名時,以有意義的字母命名。 例如:北京陸優(yōu)科技有限公司 java 編碼規(guī)范第11頁,共15頁 -(void)myFunctionWithSizeA:(CGSize)sizeA sizeB:(CGSize)_sizeB;2.4.3.變量變量

16、1.變量必須起有意義的名字,使其他組員可以很容易讀懂變量所代表的意義,變量命名可以采用同義的英文命名,可使用幾個英文單詞,第一個單詞首字母小寫,其他單詞首字母大寫。 例如: NSString *username;2.對于一些特殊類型的變量,命名時要帶上類型,如 NSArray 的變量命名為xxxArray,其他的如 xxxDictionary,xxxSize 等。這樣就可以從名稱上知道是什么類型的變量。千萬不能將 NSArray 的變量命名為 xxxDictionary。3.對于要和 interface builder 關聯(lián)的的輸出口變量,命名時要后綴以特定的控件名。例如: IBOutlet

17、UILabel *userNameLabel;4.對于使用 c 語言形式聲明的變量,一些特定類型可采用一定的簡寫: 例如: 指針類型:P 結構體類型:Rec 數組類型:Arr Core Graphic:CG 等。 循環(huán)控制變量通常使用單一的字符如:i、j、k 等。使用有意義的名字,如objectIndex 也是可以的。5.盡量避免使用全局變量,如果必須使用全局變量則必須加前綴 Pub_,同時應在變量名稱中體現變量的類型。6.私有實例變量前加一個下劃線,如_myPrivateVarible。7.枚舉變量也要有相應的前綴來區(qū)分不同的 enum 變量。比如蘋果公司的一個enum。例如:typedef

18、 enum CGPathDrawingMode CGPathDrawingMode;北京陸優(yōu)科技有限公司 java 編碼規(guī)范第12頁,共15頁/* Drawing modes for text. */ enum CGTextDrawingMode kCGTextFill, kCGTextStroke, kCGTextFillStroke, kCGTextInvisible, kCGTextFillClip, kCGTextStrokeClip, kCGTextFillStrokeClip, kCGTextClip;2.4.4.常量常量1.避免在程序中直接出現常數,使用超過一次的應以宏定義的形式來替代。2.常數的宏定義應與它實際使用時的類型相一致。如以 3.0 來定義浮點類型,用 3 表示整型。3.常量的命名應當能夠表達出它的用途,并且用大寫字母表示。 例如: #define PI 3.14159264.一些常量前加特殊前綴,可以作為不同常量的區(qū)分, 例如: UserDefaultsKey 的變量前加 UDKEY_, Notification

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論