iOS開發規范文檔_第1頁
iOS開發規范文檔_第2頁
iOS開發規范文檔_第3頁
iOS開發規范文檔_第4頁
iOS開發規范文檔_第5頁
免費預覽已結束,剩余10頁可下載查看

下載本文檔

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

文檔簡介

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

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

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

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

5、roperty 和 synthesize 提供了遵守命名規范的解決方法示例: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 常量命名常量(預定義,枚舉,局部常量等)使用小寫k 開頭的駝峰法,比如kInvalidHandle ,kWritePerm示例:#define kRunAnnotationStartPointTitle“ 起點typedef NS_ENUM (NSInteger,RunGoalTypeE)= 0,/無目標= 1,/以時間為目標= 2,/以距離為目標= 3,/以消耗卡路里為目標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這個圖片資源命名方式,以功能為組織形式,是一個很好的習慣,有利于查看資源文件。原則:1 )采用單詞全拼,或者大家公認無岐義的縮寫(比如: nav, bg, btn 等 )2)采用“模塊 +功能

10、”命名法,模塊分為公共模塊、私有模塊。公共模塊主要包括統一的背景,導航條,標簽,公共的按鈕背景,公共的默認圖等等;私有模塊主要根據app 的業務功能模塊劃分,比如用戶中心,消息中心等備注:建議背景圖采用以bg 作前綴,按鈕背景采用btn 作前綴(不作強制要求,項目實際負責人根據團隊特點確定即可)公共模塊命名示例:導航條背影圖片:bg_nav_bar2x.png導航返回按鈕:bg_nav_back_normal2x.png , bg_nav_back_selected2x.png標簽 item 背景: bg_tabbar_record_normal2x.png , bg_tabbar_recor

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

12、原則:基于 MVC 設計模式原則,至少要保證controller 與數據處理,網絡請求相對獨立基于功能模塊原則,功能模塊分包括數據/網絡處理,UI 前端界面兩部分,數據/網絡處理應該在數據/網絡處理的框架下,而UI 前端界面比如用戶中心,消息中心,它們的專有的controller , view 等應該在屬于文件夾。還會遇到一些公共的view,可以開辟出公共的文件夾來管理在實際中使用中,項目實際負責人可以結合項目特點靈活使用,但基本的原則一定要保持, 保持良好的類文件組織結構,對團隊有益無害。2. 圖片資源文件組織圖片資源文件,強烈建議采用Images.xcassets 管理,盡量少用自己創建的

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

14、法,可以方便看到是否remove 了一些操作,對內存的合理釋放等,controller , view 的生命周期函數放到最上面,自己實現的方法在下面,相同/相近功能的方法采用#pragma mark - 來標記,以便查看。示例: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:域#國分機 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;第一部分主要對易把握的,易推廣的,并且對團隊開發中有實實在在幫助內容作簡要論述,沒錯, 注釋, 上述沒有對注釋做專門的闡述,良好的代碼習慣就是一 傅總團隊要求iOS 代碼規范1 刪除多余的空行* 所有方法與方法之間空1 行* 所有代碼塊之間空1 行2 刪除多余的注釋* 刪除注釋掉的代碼* 刪除沒有意義的注釋3 刪除多余的方法* 如果方法沒有使用到,請刪除它* 如果方法沒有執行任何業務邏輯,請刪除它或者給出一定注釋4 刪除未被使

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

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

溫馨提示

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

評論

0/150

提交評論