iOS開發(fā)規(guī)范文檔_第1頁
iOS開發(fā)規(guī)范文檔_第2頁
iOS開發(fā)規(guī)范文檔_第3頁
iOS開發(fā)規(guī)范文檔_第4頁
iOS開發(fā)規(guī)范文檔_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余10頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、iOS 開發(fā)規(guī)范命名本文推薦駝峰法,也是Objective-C 社區(qū)的標(biāo)準(zhǔn)。駝峰法分小駝峰法和大駝峰法。小駝峰法:除第一個(gè)單詞之外,其他單詞首字母大寫。大駝峰法相比小駝峰法,大駝峰法把第一個(gè)單詞的首字母也大寫了。2. 類命名類名(不包括類別和協(xié)議名)應(yīng)該用大寫開頭的大駝峰命名法。類名中應(yīng)該包含一個(gè)或多個(gè)名詞來說明這個(gè)類(或者類的對(duì)象)是做什么的。在應(yīng)用級(jí)別的代碼里,盡量不要使用帶前綴的類名。每個(gè)類都有相同的前綴不能提高可讀性。不過如果是編寫多個(gè)應(yīng)用間的共享代碼,前綴就是可接受并推薦的做法了(型如JKPhotoBrowser ) 。示例 1 :interface ImageBrowseView

2、:UIViewend示例 2:(帶前綴JK)interface JKPhotoBrowser :UIViewend3. 類別命名類名+標(biāo)識(shí)+擴(kuò)展(UIImageView +HP+Web )例:如果我們想要?jiǎng)?chuàng)建一個(gè)基于UIImageView 的類別用于網(wǎng)絡(luò)請(qǐng)求圖片,我們應(yīng)該把類別放到名字是UIImageView+HPWeb.h 的文件里。UIImageView 為要擴(kuò)展的類名,HP 為專屬標(biāo)識(shí), Web 為擴(kuò)展的功能。類別的方法應(yīng)該都使用一個(gè)前綴(型如hp_myCategoryMethodOnAString ), 以防止Objective-C 代碼在單名空間里沖突。如果代碼本來就不考慮共享或在不

3、同的地址空間(address-space) ,方法命名規(guī)則就沒必要恪守了。類別 HPWeb 頭文件,UIImageView+HPWeb.h 如下:interface UIImageView (HPWeb)- (void)hp_setImageWithURLString:(NSString *)urlStr;end4. 方法命名方法使用小駝峰法命名, 一個(gè)規(guī)范的方法讀起來應(yīng)該像一句完整的話,讀過之后便知函數(shù)的作用。執(zhí)行性的方法應(yīng)該以動(dòng)詞開頭,小寫字母開頭,返回性的方法應(yīng)該以返回的內(nèi)容開頭,但之前不要加get。示例:- (void)replaceObjectAtIndex:(NSUInteger)

4、index withObject:(id)anObject;(instancetype)arrayWithArray:(NSArray *)array;如果有參數(shù),函數(shù)名應(yīng)該作為第一個(gè)參數(shù)的提示信息,若有多個(gè)參數(shù),在參數(shù)前也應(yīng)該有提示信息(一般不必加and)一些經(jīng)典的操作應(yīng)該使用約定的動(dòng)詞,如initWith,insert,remove,replace,add 等等。5. 變量命名變量名使用小駝峰法, 使變量名盡量可以推測(cè)其用途屬性具有描述性。別一心想著少打幾個(gè)字母,讓你的代碼可以迅速被理解更加重要。5.1 類成員變量:成員變量用小駝峰法命名并前綴下劃線,Objective-C 2.0 , p

5、roperty 和 synthesize 提供了遵守命名規(guī)范的解決方法示例:interface ViewController ()*dataArray;property (nonatomic,strong)NSMutableArrayproperty (nonatomic,strong)UITableView*tableView;endimplementation ViewControllerend5.2 一般變量命名示例:NSMutableArray *ticketsArray = NSMutableArrayarrayWithCapacity:0;NSInteger numComplete

6、dConnections =3;5.3 常量命名常量(預(yù)定義,枚舉,局部常量等)使用小寫k 開頭的駝峰法,比如kInvalidHandle ,kWritePerm示例:#define kRunAnnotationStartPointTitle“ 起點(diǎn)typedef NS_ENUM (NSInteger,RunGoalTypeE)= 0,/無目標(biāo)= 1,/以時(shí)間為目標(biāo)= 2,/以距離為目標(biāo)= 3,/以消耗卡路里為目標(biāo)kRunGoalTypeNonekRunGoalTypeTimekRunGoalTypeDistancekRunGoalTypeCalori;NSString *const kGro

7、upInfoName =name;6. 圖片資源文件命名先看下新浪微博app 圖片資源命名方式,下面是部分截圖:common_icon_membershipjevel1 2x.png common_icon_membership_level13x.png common_icon_membershipjevel22x.png common_icon_membershipjevel23x.png common_icon_membership_level32x.png common_icon_membership_level33x.png common_icon_membership_level42

8、x.png common Jcon_membershipJevel43x.png common_icon_membershipjevel52x.png common_icon_membershipjevel53x.png common_icon_membership_level62x.png common Jcon_membershipJevel63x.pngII tabbar_compose_shooting.png I tabbar_compose_shooting2x.png 魚 tabbar_compose_shooting3x.png O| tabbar_compose_transf

9、er3x.png 0| tabbar_compose_video2x.png | tabbar_compose_voice.png tabbar_compose_voice2x.png 曼 tabbar_compose_voice3x.png tabbar_compose_weibo.png tabbar_compose_weibo2x.png QI tabbar_compose_weibo3x.png這個(gè)圖片資源命名方式,以功能為組織形式,是一個(gè)很好的習(xí)慣,有利于查看資源文件。原則:1 )采用單詞全拼,或者大家公認(rèn)無岐義的縮寫(比如: nav, bg, btn 等 )2)采用“模塊 +功能

10、”命名法,模塊分為公共模塊、私有模塊。公共模塊主要包括統(tǒng)一的背景,導(dǎo)航條,標(biāo)簽,公共的按鈕背景,公共的默認(rèn)圖等等;私有模塊主要根據(jù)app 的業(yè)務(wù)功能模塊劃分,比如用戶中心,消息中心等備注:建議背景圖采用以bg 作前綴,按鈕背景采用btn 作前綴(不作強(qiáng)制要求,項(xiàng)目實(shí)際負(fù)責(zé)人根據(jù)團(tuán)隊(duì)特點(diǎn)確定即可)公共模塊命名示例:導(dǎo)航條背影圖片:bg_nav_bar2x.png導(dǎo)航返回按鈕:bg_nav_back_normal2x.png , bg_nav_back_selected2x.png標(biāo)簽 item 背景: bg_tabbar_record_normal2x.png , bg_tabbar_recor

11、d_selected2x.png 私有模塊命名示例:以 Joggers APP 的用戶中心圖片資源為例說明, uc user center用戶中心頭像默認(rèn)圖:bg_uc_avatar2x.png用戶中心頂部默認(rèn)背景圖:bg_uc_top_defaut2x.png用戶中心底部背景圖:bg_uc_bottom2x.png這部分工作較為繁雜,并且在程序員心中會(huì)認(rèn)為是技術(shù)含量較低的一個(gè)工作,但圖片命名的嚴(yán)謹(jǐn)性同樣會(huì)反映出我們對(duì)細(xì)節(jié)的追求,細(xì)節(jié)決定成敗。文件組織結(jié)構(gòu)1. 類文件組織iOS 工程文件結(jié)構(gòu)分物理結(jié)構(gòu)和邏輯結(jié)構(gòu),建議邏輯結(jié)構(gòu)和物理結(jié)構(gòu)保持一致,以便方便有效地管理類文件。類文件組織要遵循以下兩大

12、原則:基于 MVC 設(shè)計(jì)模式原則,至少要保證controller 與數(shù)據(jù)處理,網(wǎng)絡(luò)請(qǐng)求相對(duì)獨(dú)立基于功能模塊原則,功能模塊分包括數(shù)據(jù)/網(wǎng)絡(luò)處理,UI 前端界面兩部分,數(shù)據(jù)/網(wǎng)絡(luò)處理應(yīng)該在數(shù)據(jù)/網(wǎng)絡(luò)處理的框架下,而UI 前端界面比如用戶中心,消息中心,它們的專有的controller , view 等應(yīng)該在屬于文件夾。還會(huì)遇到一些公共的view,可以開辟出公共的文件夾來管理在實(shí)際中使用中,項(xiàng)目實(shí)際負(fù)責(zé)人可以結(jié)合項(xiàng)目特點(diǎn)靈活使用,但基本的原則一定要保持, 保持良好的類文件組織結(jié)構(gòu),對(duì)團(tuán)隊(duì)有益無害。2. 圖片資源文件組織圖片資源文件,強(qiáng)烈建議采用Images.xcassets 管理,盡量少用自己創(chuàng)建的

13、文件夾管理。使用 Images.xcassets 的優(yōu)勢(shì)很多,具體可以查閱讀相關(guān)文獻(xiàn)資料,這里只從工程管理上說一點(diǎn),在Images.xcassets 中添加圖片資源,不會(huì)對(duì)project 文件造成改變,而直接在文件夾里添加圖片文件,每次都會(huì)對(duì)project 文件造成改變,因此使用Images.xcassets 管理圖片資源可以減少project 沖突的次數(shù)。下圖是 Joggers 的文件組織結(jié)構(gòu):上圖嚴(yán)格按照上述討論組織文件結(jié)構(gòu),保持了物理/邏輯結(jié)構(gòu)的統(tǒng)一,方便團(tuán)隊(duì)間查閱代碼,以及共享資源。類代碼組織原則一個(gè)原則:析構(gòu)函數(shù)- (void)dealloc 最好放到類最上面,第一眼就可以看到這個(gè)方

14、法,可以方便看到是否remove 了一些操作,對(duì)內(nèi)存的合理釋放等,controller , view 的生命周期函數(shù)放到最上面,自己實(shí)現(xiàn)的方法在下面,相同/相近功能的方法采用#pragma mark - 來標(biāo)記,以便查看。示例:M 9rt Ferninfo.Illi 詠rt CytwCcU.tru u H 2neHControUe* (K .一:1 YaMeiekOekegKQwtrty fiMOWa , F? 0Wrr” ,(HMitoMc. VHeblMiMEQUArr”;tebierifw;1viwCootrolUrH B9 nim-(v( :C )aMUM(.aasy an 3.muv

15、i*w.de b - .i:.”blay如 ej, ubl1it tpV/blog. Isdn. net /pjkl 129-vd 1 “igga/ 8 additlefial wtsjp ifttrviw, tyvtolly fro , 4KBDeso” ylw.tMr (tflCkor wUtteColerlilie I-Q- E-(oi)testData (卜 Muhb;*tMp (wy ):pmfod -579,”pimfol.cMe . MNrM2Mg.jpT: ItMp i :tpinfolj;9KshortM3e7RresultkArrfort (tew : : 44rrayu,

16、gC*MQt01AtiKMporiMfllWiult彳:objl, etJ2Pers9nlnfc epl (Rrsnlnf )gjl;Ptrswlnf 22 (Prnln(o tofej2; return (pl.hortNM CMMre:ol.lferVaM tloasMM*rlcSMrc 1;)J:域#國分機(jī) VW郃驍H匿加k 1129-leArr .y JgetChknescStringArr;(h: A* : r )arrToSortnbloA, tteopArra/ (N tattrArriy arrantthCweittOl:NYtr:” snMe -。(, LOj ltrrTor

17、l covnt 1;cl$einaae plefo.shortHBw:MMuUbleA YNA iMSMutUleAf/fty “Mftffew!,QW6);ItespArrey (5d0b)4ct :dat);tOPpArr”;fpe* Mfk - UJTebleVinOataSourcc ( 51JnibertlfSect ionsInTableVlew: (LTTleVir- JtibleViewI,.d2r” t2leYhew; W【心 c ic )“6uY】ev rxjBber9fRowsln5ecanM;l, i teoc lsection;o r (ir f.dataArray

18、ebje rtAflrdt-zjjeetlal tj:-(ir.Lirv !-wt - : i 八檢,Stgiqvia什;)Index% thlUtic MSStflfJleletlentifiJp 1rPC t / P jk 11211 cell - (CustorfeU )(tblVlv RWtoM*blcCUVUMcr :CtlUdeMifterh . f (cell = r1 ,J cell | (CustoACell. alloc) in styleturTabteVieUStyleOeuIt ret0eMmtifAori CelUMMiflerl;crll. w”f“y &” Ic

19、b)m lc-i IlMeMtath ( 110 JJ;cell.plnfo (data oojeef Atir.(jp.:indexPath.rcMrj ; CtVl;第一部分主要對(duì)易把握的,易推廣的,并且對(duì)團(tuán)隊(duì)開發(fā)中有實(shí)實(shí)在在幫助內(nèi)容作簡(jiǎn)要論述,沒錯(cuò), 注釋, 上述沒有對(duì)注釋做專門的闡述,良好的代碼習(xí)慣就是一 傅總團(tuán)隊(duì)要求iOS 代碼規(guī)范1 刪除多余的空行* 所有方法與方法之間空1 行* 所有代碼塊之間空1 行2 刪除多余的注釋* 刪除注釋掉的代碼* 刪除沒有意義的注釋3 刪除多余的方法* 如果方法沒有使用到,請(qǐng)刪除它* 如果方法沒有執(zhí)行任何業(yè)務(wù)邏輯,請(qǐng)刪除它或者給出一定注釋4 刪除未被使

20、用的資源文件5 添加必要的注釋* 所有 .h 文件中的property 需要給出注釋* 所有自定義的方法需要給出注釋* 比較大的代碼塊需要給出注釋* 所有代碼中出現(xiàn)的阿拉伯?dāng)?shù)字需要給出注釋* 程序中出現(xiàn)加密解密邏輯的操作地方,需要給出注釋說明過程(無論是系統(tǒng)還是自定義)6 整體代碼風(fēng)格需要統(tǒng)一* 代碼后面的” “ 不需要單獨(dú)占用一行* 邏輯運(yùn)算符與代碼之前空一格* “ #pragma mark -” 與下面的代碼之前不要空行* 遵循一般性的代碼規(guī)范iOS 通用規(guī)則1 下面所有規(guī)則對(duì)第三方類庫無約束* 所有類、方法、屬性等命名,做到見名知意,采用駝峰式命名規(guī)則* 根據(jù)資源類型或者所屬業(yè)務(wù)邏輯對(duì)項(xiàng)

21、目資源進(jìn)行分組,使得整個(gè)項(xiàng)目結(jié)構(gòu)清晰明了* 整個(gè)項(xiàng)目保持一種代碼書寫風(fēng)格(這個(gè)風(fēng)格由無錫團(tuán)隊(duì)根據(jù)自己編碼習(xí)慣來定),讓你的代碼變的優(yōu)雅!2. 命名規(guī)范* 所有類名稱以項(xiàng)目工程開頭命名,eg: “ XP、” “ ZJG”、 “ SZ”* 針對(duì)不同視圖控制器,在末尾添加后綴,eg:* UIViewController 后綴添加“ ViewController ”* UIView 后綴添加“ View”* UIButton 后綴添加“ Button* UILabel 后綴添加“ Label3. 單頁代碼最好控制在800 行以內(nèi),每個(gè)方法最好不要超過100 行,過多建議對(duì)代碼進(jìn)行重構(gòu)4. 相同的邏輯方法定義避免在多個(gè)地方出現(xiàn),盡量將公用的類、方法抽取出來5. 刪除未被使用的代碼,不要

溫馨提示

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

評(píng)論

0/150

提交評(píng)論