欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

coding學(xué)堂之使用Objective-C來開發(fā)iOS程序的編碼建議

2016-04-12 13:28:32 1470瀏覽

         在開發(fā)過程中,我們不僅要去看別人的代碼,也要讓別人看我們的代碼。那么,有一個良好的編碼習(xí)慣將會非常重要。下面一起來看一下關(guān)于使用Objective-C來開發(fā)iOS程序的編碼建議吧。

         1、任意函數(shù)長度不得超過50行。(其實很容易就超過50行,這就要考慮代碼抽取了。

         2、任意行代碼不能超過80字符。(其實也很容易超過80字符,可以考慮多行顯示,比如有多個參數(shù)時,可以每個參數(shù)放一行。)可以在Xcode中設(shè)置超過80個字符的提醒,選中“Page guide at column”.設(shè)置完之后就會在代碼80個字符處有一條豎線。

         3、在每個方法的定義前留白一行,也就是在方法和方法之間留空一行。

         4、功能相近的方法要放在一起,并推薦使用#pragma mark來導(dǎo)航代碼,切分代碼塊。這樣可以方便函數(shù)的查找。并且可以使用快捷鍵control+6 來快速查找方法的位置。

         5、二元運(yùn)算符和參數(shù)之間要有一個空格,如賦值號=左右各留一個空格。self.myString = @"235423rew523452345";

         6、一元運(yùn)算符和參數(shù)之間不放置空格,比如!非運(yùn)算符,&按位與,|按位或。BOOL isOpen = true;BOOL isClose = !isOpen;

         7、強(qiáng)制類型轉(zhuǎn)換和參數(shù)之間不放置空格。NSString*str3 = (NSString*)self.myString;

         8、長的變量值應(yīng)該拆分為多行。尤其體現(xiàn)在使用數(shù)組或者字典。以下也分別是快速聲明數(shù)組@[]和字典@{}的方法。

         NSArray *array = @[@"111",@"2222222222",@"3333333",@"wwwwwwwwwwww"];

         NSDictionary *dict = @{@"name":@"jack",@"age":@"20",@"gender":@"female",@"isMarried":@"false"};

        9、 盡量使用有意義的名字命名,拒絕使用i,j等無意義字符命名。類的命名首字母大寫,其他變量的命名首字符小寫,并使用駝峰式分割單詞。

         10、盡量減少在代碼中直接使用數(shù)字常量,而使用宏定義等方式。如:MAX_NUMBER_PHONE替代8等等。這樣我們搜索也比較方便。

         11、盡量減少代碼中的重復(fù)計算,比如代碼中多處要使用屏幕寬度,然后計算:[[UIScreenmainScreen] bounds].size.width ,很多次,閑得很繁瑣,代碼也冗長。不如直接宏定義:

         #defineSCREEN_WIDTH([[UIScreen mainScreen]bounds].size.width)

         12、宏定義全部字母大寫。

         13、函數(shù)長度不要超過50行,小函數(shù)比大函數(shù)可讀性更強(qiáng)。函數(shù)的參數(shù)不宜過多,零元函數(shù)最好,一元函數(shù)也不錯,高于三元的函數(shù)虛重構(gòu)。

         14、合理范圍內(nèi)使用鏈?zhǔn)骄幊蹋篘SString *myName = [[NSString alloc] init];但是嵌套不宜超過3層,超過3層需進(jìn)行重構(gòu)。

         15、函數(shù)調(diào)用時所有參數(shù)在同一行。如果參數(shù)過多,則可以每行一個參數(shù),每個參數(shù)以冒號對齊。

         16、 對傳入?yún)?shù)的保護(hù)或者說是否為空的判斷,盡量不要使用if(!obj),而使用NSAssert斷言來處理。NSAssert是系統(tǒng)定義的宏。NSAssert(myName!= nil, @"myName參數(shù)為空"),如果條件判斷為真,則程序繼續(xù)執(zhí)行;如果判斷條件為假,則拋出異常,異常內(nèi)容為后面定義的字符串;

         17、方法參數(shù)名前一般使用"an","the","new"來進(jìn)行修飾。如:-(void)setPersonInfo:(NSString*)theID theName:(NSString*)theName theAge:(NSInteger*)theAge

         18、if-else超過四層的時候,就要考慮重構(gòu),多層的if-else結(jié)構(gòu)很難維護(hù)。

         19、當(dāng)需要一定條件才執(zhí)行某項操作時,最左邊的應(yīng)該是最重要的代碼,不要將最重要的代碼內(nèi)嵌到if中。

         如良好的風(fēng)格是:- (void) someMethod{if(![someOther boolValue]) { return; }//最重要的代碼寫在這里;}

         反面教材:-(void) someMethod{if([someOther boolValue]) { //重要代碼;} }

         20、所有的邏輯塊都使用{}花括號包圍,就算只是一行代碼。

         21、明確指定構(gòu)造函數(shù),并有適當(dāng)?shù)淖⑨尅?

         22、 不要在init方法中把變量或者說屬性初始化為0或者nil,因為沒有必要。

         23、UIView的子類初始化的時候,不要進(jìn)行任何的布局操作。布局操作應(yīng)該在layoutSubviews里面做;需要重新布局的時候調(diào)用setNeedsLayout,而不要直接調(diào)用layoutSubviews。

         24、保持公共API簡單,也就是保持.h文件簡單。放在.h中聲明的函數(shù)都是會被公開的,如果根本就沒必要對其他類公開,再不要在.h中聲明。OC中的方法都是公有方法,沒有私有方法一說。

         25、一個文件只實現(xiàn)一個類。同一個文件中不要有多個類。

         26、Protocol單獨(dú)用一個文件來創(chuàng)建,盡量不要與相關(guān)類混在一個文件中。

         27、在類定義中使用到自己定義類的時候,盡量不要在頭文件中引入自己定義類的頭文件,使用@class替代。而在實現(xiàn)文件中引入頭文件。

         28、布局時盡量使用相對布局,比如使用子View在父View中的相對位置。

         29、代碼折疊,這個可能是關(guān)于開發(fā)效率的,我也寫在編碼規(guī)范中,因為這個很有用。Xcode7默認(rèn)沒有開啟代碼折疊,如果你的方法體行數(shù)很長,看起來會很不方便,此時你就可以把方法“收起來”,一個類中的結(jié)構(gòu)就會很清晰。開啟方法如下:Xcode菜單-->Preferences-->Text Editing-->勾選Code folding ribbon。

         希望以上對你將要學(xué)習(xí)iOS開發(fā)或即將從事iOS開發(fā)的你有所幫助!扣丁學(xué)堂作為北京千鋒互聯(lián)科技有限公司旗下的在線教育平臺,通過線上線下相結(jié)合的形式,全方位的服務(wù)學(xué)員,從iOS開發(fā)入門基礎(chǔ)到iOS UI設(shè)計再到iOS高級專題,最后是iOS項目實戰(zhàn)。一套iOS從入門到到精通的免費(fèi)iOS開發(fā)教程。

查看更多關(guān)于“iOS培訓(xùn)資訊”的相關(guān)文章>>

標(biāo)簽:

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部