開發(fā)培訓(xùn)大神ios編碼后_第1頁(yè)
開發(fā)培訓(xùn)大神ios編碼后_第2頁(yè)
開發(fā)培訓(xùn)大神ios編碼后_第3頁(yè)
開發(fā)培訓(xùn)大神ios編碼后_第4頁(yè)
開發(fā)培訓(xùn)大神ios編碼后_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

前IOS開發(fā)小組編碼約定,提高程序的可靠軟件編碼要遵循以下原則易于使用和;良好的修改性、擴(kuò)充性;可重用性強(qiáng)/移植性好Objective-C語(yǔ)言為例}排版約UIGraphicsGetCurrentContext()//函NSCellDisabled類名應(yīng)當(dāng)包含能清晰該類的功能的名詞在面向特定應(yīng)用的代碼中,類名應(yīng)盡量避免使用前綴,每個(gè)類都使用相同的前綴影響可讀性。協(xié)議頭文件里的協(xié)議名不要和類 。如

// (void)sendAction:(SEL)aSelector:(id)anObject:(BOOL)flag //NSMatrix,asubclass //of不要使用“andreceiver屬性(int)runModalForDirectory:(NSStringfile:(NSString*)nametypes:(NSArray*)fileTypes; (int)runModalForDirectory:(NSStringandFile:(NSString*)nameandTypes:(NSArray*)fileTypes; 方法描述了兩個(gè)分離的動(dòng)作,用“and-(BOOL)opneFile:(NSString*)fulPathwithApplication:(NSString*)appNameinsertObject //不清晰,要移除什么? 例如:alloc,altapp,calcdeallocfunc,horiz,info,initintmaxmin,msgnibpboard,rectRep,temp,vert如:ASCII,PDFXMLHTML,URLRTFHTTPTIFFJPG,PNG,FIG,LZW,ROM,RGB,CMYK,MIDI,FTP等。APIsendPort://不好,是發(fā)送 還是要返回一個(gè) getter方法時(shí),getter的方法名和變量名應(yīng)相(id)getDelegate;//(id)delegate;//getter@property(getter=getFontSize)NSInteger 可以使用情態(tài)動(dòng)詞(can,should,will等)doesgetcount:(int*)countphase:(float*)phase;“subprefixes”.標(biāo)準(zhǔn)如:NS,AB,IB等。在面向多應(yīng)用的代碼functions,constants,typedefstructures時(shí)使用前綴。命名methods時(shí)不要使用前綴;方法是存在于定義它們的類所創(chuàng)建的namespace里。也不要在命名結(jié)構(gòu)體字段時(shí)使用前綴。如果你是一個(gè)大cocoa框架的子類,想絕對(duì)確定你的私有方法有一法 這個(gè)前綴盡可能獨(dú)一的,基于你的公司或工程的縮寫格Objective-C代碼,C++C++變量式化代指針”*”號(hào)的*”前加空格,緊跟參數(shù)如UITextField每行的長(zhǎng)100方法的和定在“-”或者“+1個(gè)空格,方法名和第一個(gè)參數(shù)間不留。-(void)doSomethingWithString:(NSString}//}如果方法名比參數(shù)名短,每個(gè)參數(shù)占用一行,4個(gè)字符,且為垂直如(void)short:(GTMFoo*)theFoo//}方法的調(diào)調(diào)用方法沿用方法的習(xí)慣。例外:如果給定源文件已經(jīng)遵從某種習(xí)慣,繼 或[myObject 一樣,如果無(wú)法使用冒號(hào)對(duì)齊時(shí),每個(gè)參數(shù)一行、縮進(jìn)4個(gè)字符、如[myObj@public和@public和@private使用單獨(dú)一行,1類型標(biāo)示符、名稱、尖括號(hào)間不留空格該規(guī)則同樣適用于:類、實(shí)例變量和方法。如:@interfaceMyProtocoledClassNSObject<NSWindowDelegate>}CocoaObjective-C特有的規(guī)成員@interfaceMyClass:NSObject{id}//publicaccessors,settertakesIndentifyDesignated一個(gè)精心設(shè)計(jì)的初始化方法應(yīng)當(dāng)完成以下步驟來(lái)確保適當(dāng)?shù)臋z測(cè)和誤差super檢測(cè)返回值和nil對(duì)比,這可 一些發(fā)生在父類的初始器里的錯(cuò)誤nil。-self=[superinit]; //Calladesignatedinitializerhere;if(self!=nil){//Initializeobject...if(someError){[selfrelease];self=nil;}}return}初始內(nèi)存中所有的新創(chuàng)建的對(duì)象(isa除外)0,“0”“nil”,避免顯式的調(diào)用+newNSObject的類方法+new,allocinit#importVS使用#importOjbective-COjbective-C++頭文件,使用,#includeimport根框架(rootframeworks),而非各單個(gè)文件加載會(huì)更快。再次強(qiáng)調(diào):使用#import而非#includeObjective-C框架。如#import<Foundation/NSArray.h>//<//創(chuàng)建autoreleaserelease的使autorelease:-(NSMutableArray//returnobjectshouldNSMutableArray*bookMarkList=[[[NSMutableArrayalloc]init]//dosomethingreturnbookMarkList;}方法的邏輯判斷比較復(fù)雜,有可能提前返回的情況下,建議使用autorelease,雖然這樣會(huì)稍微有點(diǎn)慢,但這樣可 因?yàn)樘崆盎蚱渌馔馇闆r導(dǎo)致的內(nèi)存。例如MyController*controller=[[[MyControlleralloc]init]//...return...[controllerrelease,在將一個(gè)新創(chuàng)建的對(duì)象賦給變量時(shí),要先將舊對(duì)象release掉,否則會(huì)內(nèi)存。-(void)setFoo:(GMFoo*)aFoo[foo_foo_=[aFoo}dealloc的順序要與變量的順序相同,這有利于review代NSString的屬性的setter使用“copy”,使用retain,以防止意外的修改了NSString變量的值。如:-(void)setFoo:(NSString*)aFoo{[foo_autorelease];foo_=[aFoo}或@property(nonatomic,copy)NSStringnil的檢BOOL陷將int值轉(zhuǎn)換為BOOL時(shí)應(yīng)特別。避免直接和YES比Objective-C中,BOOLunsignedchar,YES(1)NO(0)外它還可以是其他值。將int直接轉(zhuǎn)換為BOOL常見(jiàn)的錯(cuò)誤包括:BOOL,BOOL值的結(jié)果取決于整型值的最后一位BOOL的方法:YESNO,或使用BOOL、_Boolbool之間的轉(zhuǎn)換是安全的,BOOLBoolean間的轉(zhuǎn)換不是安全的,Boolean//-return[selffontTraits]//&intBoolint}-(BOOL)isValidreturn[self}//(BOOL)isBoldreturn([selffontTraits]&NSFontBoldTrait)?YES:}return[selfstringValue]!=}(BOOL)isEnabledreturn[selfisValid]&&[self}?直接將BOOL和YES/NO比較,如//BOOLgreat=[fooisGreat];if(great==YES)//BOOLgreat=[fooisGreat];if(great)屬通過(guò)使用property和synthesize組合來(lái)避免顯式公共實(shí)例變位置:屬性的緊隨成員變量塊之后,中間空一行,無(wú)縮進(jìn)嚴(yán)把權(quán)限:NSStringcopyretainnonatomicatomicDelegatePattern(委托模式delegate對(duì)象使用assign, 使用retain。因?yàn)閞etain會(huì)導(dǎo)致循環(huán)索引導(dǎo)致內(nèi)存,并且此類型的內(nèi)存無(wú)法被Instrument發(fā)現(xiàn),極難調(diào)試ModelViewview相關(guān)的類中添加過(guò)多的業(yè)務(wù)邏輯代碼,這讓代碼的可重用性很差。Controller負(fù)責(zé)業(yè)務(wù)邏輯代碼,Controllerview使用@protocalAPIs,如果并非所有方法都是必須的,可選使用@optional標(biāo)示,必選使用@required標(biāo)識(shí).initinitdealloc方法是是最常用的方法,frame//DosomethingUIScrollView*mScrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,self.view.frame.size.width,}view視圖排viewviewinti=0;UILabel*l1=[[UILabelalloc]initWithFrame:CGRectMake(0,i,100,30)];[self.viewaddSubview:l1];[l1UILabel*l2=[[UI

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論