IOS開發(fā)編碼及命名規(guī)范_第1頁
IOS開發(fā)編碼及命名規(guī)范_第2頁
IOS開發(fā)編碼及命名規(guī)范_第3頁
IOS開發(fā)編碼及命名規(guī)范_第4頁
IOS開發(fā)編碼及命名規(guī)范_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、IOS開發(fā)編碼及命名規(guī)范目錄1、目的32、適用范圍33、編碼規(guī)范33.1、文件33.2、注釋33.3、編碼排版格式43.4、命名規(guī)范63.4.1、保留字63.4.2、方法73.4.3、變量73.4.4、常量83.4.5、類83.5、修改規(guī)范93.5.1、新增代碼行93.5.2、刪除代碼行93.5.3、修改代碼行91、目的統(tǒng)一規(guī)范XCode編輯環(huán)境下Objective-C的編碼風(fēng)格和標(biāo)準(zhǔn)2、適用范圍適用于所有用Objective-C語言開發(fā)的項(xiàng)目。3、編碼規(guī)范3.1、文件1) 項(xiàng)目文件都是使用因文命名。2) 公共文件統(tǒng)一命名為 AppConfigc.h。任何文件的命名盡量不要以中文命名。3) 對

2、于文件的目錄要按如下結(jié)構(gòu)創(chuàng)建:-圖片等資源文件放在Images.xcassets。 -所有的三方庫在單獨(dú)的組(Group)中,如ThirdPartLibrary。 -所有的分類跟封裝放在單獨(dú)的組中,如Common。3.2、注釋1) 注釋可以采用 /* */ 和 / 兩種注釋符號,涉及到多行注釋時(shí),盡量使用 /* */ 。2) 對于一行代碼的注釋可放在前一行及本行上,不允許放在下一行,更不允許在一行語句的中間加入注釋。3) 單元文件的文件頭注釋說明應(yīng)按如下格式: / 文件名/ 工程名/ Created by 創(chuàng)建者 on 日期./ Copyright 2010 xxx有限公司. All righ

3、ts reserved./ 系統(tǒng)名稱: / 功能描述:/ 修改記錄:(僅記錄功能修改)/ 張三 2012-02-02 創(chuàng)建該單元 / 小明 2010-03-02 增加本地點(diǎn)單功能。3.3、編碼排版格式 1) 代碼的縮進(jìn)應(yīng)使用空格(SPACE),不能使用制表符(TAB),并且縮進(jìn)以2個(gè)字符為單位。 2) 中括弧的每一個(gè)括弧在源程序中要單獨(dú)占一行。 例如 /不正確用法 for (int i = 0; i < 10 ; i+) /正確用法for (int i = 0; i < 10; i+) 3) 空格的使用 a) 關(guān)鍵字與其后的表達(dá)式之間要有空格,如: if (expr) 或 for

4、(expr) b) 單目操作符不應(yīng)與它們的操作數(shù)分開(如!和等)。 c) 除 , 外,其它雙目操作符應(yīng)與它們的操作數(shù)用空格隔開。 例如 i=i+1; /錯(cuò)誤的寫法,操作符兩端沒有空格 i = i + 1; /正確的寫法, if(a>b) /錯(cuò)誤的寫法,邏輯判斷符號兩端沒有空格 if(a > b) /正確的寫法 d) .h中協(xié)議<>前面有一個(gè)空格。 e) .h中成員聲明時(shí),類型與變量之間有至少1個(gè)空格。*號靠近變量,不靠近類型。 f) property后留1個(gè)空格,()里面,逗號緊跟前一變量,與后一變量之間留1個(gè)空格。()外面,先留1個(gè)空格,再聲明屬性。 g) 方法的+,

5、-后面與()之間留1個(gè)空格。 h) 返回類型與*之間留1個(gè)空格,方法參數(shù)中返回類型與*之間留1個(gè)空格。 i) 在多參數(shù)方法中,每個(gè)參數(shù)后面都有1個(gè)空格。 4) 每行只能有一個(gè)語句 例如 /不正確寫法 NSUInteger objectIndex, stuffCount; 或 objectIndex = objectIndex + 10, stuffCount = stuffCount + 20; 或 synthesize MyView, MyLabelView; /正確寫法 NSUInteger objectIndex;NSUInteger stuffCount;或objectIndex =

6、objectIndex + 10;stuffCount = stuffCount + 20;或synthesize MyView;synthesize MyLabelView; 5) 關(guān)于空行 a) .h中的空行 、文件說明與頭文件包含(#import)之間空1行 、頭文件包含(#import)之間,如果需要分類區(qū)別,各類別之間空1行。 、頭文件包含(#import)與class之間空2行。 、interface與class之間空1行。 、頭文件里面,空1行開始聲明對象成員,如果需要分類區(qū)別,各類別之間空1行。 、頭文件外,空1行書寫屬性,如果需要分類區(qū)別,各類別之間空1行。 、屬性下面空1行

7、開始寫方法,如果需要分類區(qū)別,各類別之間空1行。 、方法完成后,空1行end。 、如果需要聲明protocol,空2行接著寫。通常protocol寫在end后面,但是聲明在interface之前。 b) .m中的空行 、文件說明與頭文件包含(#import)之間空1行 、頭文件包含(#import)之間,如果需要分類區(qū)別,各類別之間空1行。 、implementation和synthesize之間空1行, 如果需要分類區(qū)別,各類別之間空1行。 、synthesize與方法之間空1行。 、方法與方法之間空1行。 C) 方法里面的空行 、變量聲明后需要空1行,如果需要分類區(qū)別,各類別之間空1行。

8、、條件、循環(huán),選擇語句,整個(gè)語句結(jié)束,需要空1行。 、各功能快之間空1行。 、最后一個(gè)括弧之前不空行。 、注釋與代碼之間不空行。 、#pragma mark 與方法之間空1行。 d) 每行代碼最多不得操作100個(gè)字。設(shè)置如下:Xcode => Preferences => TextEditing => Page Guide at column /輸入 100即可。3.4、命名規(guī)范3.4.1、保留字Objective-c語言的保留字或關(guān)鍵詞應(yīng)全部使用小寫字母,除下表中保留字外,private、protected、public、在類型說明中也作為保留字使用。還有nonatoman

9、ic,retain,readwrite,readonly等也有特殊的使用場合。_Bool_Complex_Imaginaryautobreakbycopybyrefcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifininlineinoutintlongonewayoutregisterrestrictreturnselfshortsignedsizeofstaticstructsuperswitchtypedefunionunsignedvoidvolatilewhile3.4.2、方法1) 方法的名稱應(yīng)全部使用有

10、意義的單詞組成,且以小寫字母開頭,多單詞組合時(shí),后面的單詞首字母大寫。例如: -(void)getUserInformation2) 設(shè)置類變量的內(nèi)容的方法應(yīng)使用set作為前綴,讀取變量的內(nèi)容的方法應(yīng)使用get作為前綴。 例如: -(void)getUserName; -(void)setUserName:(NSString *)userName;3) 方法中的參數(shù):第一個(gè)參數(shù)名稱要從函數(shù)名稱上攜帶出來,第二個(gè)參數(shù)的首字母小寫,多個(gè)單詞組合時(shí),后面單詞首字母大寫。參數(shù)有別名時(shí),參數(shù)別名與參數(shù)名一致,但參數(shù)名前綴以_。參數(shù)別名與前一參數(shù)保留1個(gè)空格。參數(shù)無別名時(shí),以有意義的字母命名。 例如: -

11、(void)myFunctionWithSizeA:(CGSize)sizeA sizeB:(CGSize)_sizeB;3.4.3、變量1) 變量必須起有意義的名字,使其他組員可以很容易讀懂變量所代表的意義,變量命名可以采用同義的英文命名,可使用幾個(gè)英文單詞,第一個(gè)單詞首字母小寫,其他單詞首字母大寫。 例如: NSString *username;2) 對于一些特殊類型的變量,命名時(shí)要帶上類型,如NSArray 的變量命名為xxxArray,其他的如xxxDictionary,xxxSize等。這樣就可以從名稱上知道是什么類型的變量。千萬不能將NSArray的變量命名為xxxDictiona

12、ry。3) 對于要和interface builder關(guān)聯(lián)的的輸出口變量,命名時(shí)要后綴以特定的控件名。 例如: IBOutlet UILabel *userNameLabel;4) 對于使用c語言形式聲明的變量,一些特定類型可采用一定的簡寫: 例如: 指針類型:P 結(jié)構(gòu)體類型:Rec 數(shù)組類型:Arr Core Graphic:CG 等。 循環(huán)控制變量通常使用單一的字符如:i、j、k等。使用有意義的名字,如objectIndex也是可以的。5) 盡量避免使用全局變量,如果必須使用全局變量則必須加前綴 Pub_,同時(shí)應(yīng)在變量名稱中體現(xiàn)變量的類型。6) 私有實(shí)例變量前加一個(gè)下劃線,如_myPriv

13、ateVarible。7) 枚舉變量也要有相應(yīng)的前綴來區(qū)分不同的enum變量。比如蘋果公司的一個(gè)enum。 例如: typedef enum CGPathDrawingMode CGPathDrawingMode; /* Drawing modes for text. */ enum CGTextDrawingMode kCGTextFill, kCGTextStroke, kCGTextFillStroke, kCGTextInvisible, kCGTextFillClip, kCGTextStrokeClip, kCGTextFillStrokeClip, kCGTextClip;3.4

14、.4、常量1) 避免在程序中直接出現(xiàn)常數(shù),使用超過一次的應(yīng)以宏定義的形式來替代。2) 常數(shù)的宏定義應(yīng)與它實(shí)際使用時(shí)的類型相一致。如以3.0來定義浮點(diǎn)類型,用3表示整型。3) 常量的命名應(yīng)當(dāng)能夠表達(dá)出它的用途,并且用大寫字母表示。 例如: #define PI 3.14159263.4.5、類1) 所有的類名,接口名(Protocol)均以大寫字母開頭,多單詞組合時(shí),后面的單詞首字母大寫。類,接口名必須是有意義的。2) 繼承自UIView的類以View結(jié)尾。 例如: BorderCircularView,LabelView等。3) 繼承自UITableViewController的類以viewController結(jié)尾。 例如: BaseTableViewController等。其他類推。3

溫馨提示

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

最新文檔

評論

0/150

提交評論