版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宜賓市重點(diǎn)中學(xué)2025屆數(shù)學(xué)高一上期末調(diào)研試題含解析
- 江蘇省蘇州市張家港市外國(guó)語(yǔ)學(xué)校2025屆語(yǔ)文高三上期末達(dá)標(biāo)測(cè)試試題含解析
- 2025屆江蘇省蘇州市吳江高級(jí)中學(xué)生物高一第一學(xué)期期末檢測(cè)試題含解析
- 阜新市重點(diǎn)中學(xué)2025屆數(shù)學(xué)高三第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 2025屆湖北省武漢第二中學(xué)生物高一上期末監(jiān)測(cè)試題含解析
- 2025屆江蘇省鹽城市濱??h高二數(shù)學(xué)第一學(xué)期期末調(diào)研模擬試題含解析
- 2025屆吉林省長(zhǎng)春汽車經(jīng)濟(jì)技術(shù)開發(fā)區(qū)六中數(shù)學(xué)高三第一學(xué)期期末檢測(cè)試題含解析
- 遼寧省盤錦市大洼區(qū)高級(jí)中學(xué)2025屆數(shù)學(xué)高三上期末統(tǒng)考試題含解析
- 2025屆貴州省從江縣民族中學(xué)數(shù)學(xué)高二上期末達(dá)標(biāo)檢測(cè)模擬試題含解析
- 銀川第二中學(xué)2025屆生物高一上期末考試試題含解析
- 級(jí)配砂石換填專項(xiàng)施工方案(可編輯)
- 模擬汽車運(yùn)輸振動(dòng)測(cè)試指導(dǎo)書
- 形式發(fā)票格式2 INVOICE
- 零基預(yù)算在企業(yè)環(huán)境成本控制中的應(yīng)用
- 采油樹維護(hù)保養(yǎng)與操作
- 集油池施工方案Word版
- 衛(wèi)生院工程施工組織設(shè)計(jì)方案
- 小學(xué)三年級(jí)上冊(cè)道德與法治課件-3.做學(xué)習(xí)的主人(我和時(shí)間做朋友)-部編版(14張)ppt課件
- 玉米育種基地建設(shè)項(xiàng)目可行性研究分析報(bào)告
- 邏輯在高考語(yǔ)文中的運(yùn)用
- 電梯維護(hù)保養(yǎng)規(guī)則
評(píng)論
0/150
提交評(píng)論