iOS開發(fā)中積累的一些代碼規(guī)范

在開發(fā)過程中苇本,我們不僅要去看別人的代碼,也要讓別人看我們的代碼菜拓。那么瓣窄,有一個良好的編碼習(xí)慣將會非常重要。下面就是一些較常規(guī)的代碼規(guī)范纳鼎。
【1】聲明類或方法時俺夕,注意空格的使用,參數(shù)過多時可換行保持冒號對齊

- (id)initWithName:(NSString *)name
               age:(NSInteger)age
               sex:(MDPersonalSex)sex;

調(diào)用方法時也是如此贱鄙,參數(shù)都寫在一行或換行冒號對齊

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title"
                                                message:@"message"
                                               delegate:self
                                      cancelButtonTitle:@"取消"
                                      otherButtonTitles:@"確定", nil];

【2】命名規(guī)則:類名首字母大寫劝贸,方法首字母小寫,方法中的參數(shù)首字母小寫逗宁,同時盡量讓方法的命名讀起來像一句話映九,能夠傳達(dá)出方法的意思,同時取值方法前不要加前綴“get”

- (void)choosePhotoAtIndex:(NSUInteger)index;

變量名小寫字母開頭

NSString *title = [titleArray objectAtIndex:0];

常量用小寫字母k開頭瞎颗,后續(xù)首字母大寫

static const NSString *kBaseServiceUrl = @"www.baidu.com";

【3】盡可能保證 .h文件的簡潔性件甥,可以不公開的API就不要公開了,寫在實現(xiàn)文件中即可
【4】Xcode支持Objective-C/C/C++混編哼拔,所以引用頭文件時:#import Ojbective-C/Objective-C++頭文件(Objective-C++是Objective-C與C++混編的文件)引有,#include C/C++頭文件。
【5】寫delegate的時候類型應(yīng)該為weak弱引用倦逐,以避免循環(huán)引用譬正。

@property (nonatomic, weak) id<MDPersonalDetegate> delegate;

【6】實例變量申明的時候前面加下劃線"_",局部變量不用檬姥。

@interface MDPersonal : NSObject {
    @private
    NSString *_name;
    NSUInteger _age;
    MDPersonalSex _sex;
}

【7】在每個方法的定義前留白一行曾我,也就是在方法和方法之間留空一行。
【8】功能相近的方法要放在一起穿铆,并推薦使用#pragma mark - ***來導(dǎo)航代碼您单,切分代碼塊。這樣可以方便函數(shù)的查找荞雏。并且可以使用快捷鍵control+6 來快速查找方法的位置虐秦。

#pragma mark - UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return self.dataSource.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    SCTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([SCTableViewCell class]) forIndexPath:indexPath];
    return cell;
}

【9】二元運算符和參數(shù)之間要有一個空格平酿,如賦值號=左右各留一個空格。

self.myString = @"235423523452345";

【10】一元運算符和參數(shù)之間不放置空格悦陋,比如蜈彼!非運算符,&俺驶,|等

BOOL isOpen = true;
BOOL isClose = !isOpen;

【11】強制類型轉(zhuǎn)換和參數(shù)之間不放置空格幸逆。

NSString *str3 = (NSString*)self.myString;

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

NSArray *array = @[@"1111111",
                   @"2222222",
                   @"3333333",
                   @"4444444"
                  ];
NSDictionary *dict = @{@"key1":@"11",
                       @"key2":@"22",
                       @"key3":@"33",
                       @"key4":@"44"
                      };

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

#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)

【14】宏定義全部字母大寫
【15】定義枚舉的時候用typedef

typedef NS_ENUM(NSInteger, MDPersonalSex) {
    ///性別保密
    MDPersonalSexDefault,
    ///男
    MDPersonalSexMale,
    ///女
    MDPersonalSexFemale
};

【16】第一個花括號直接跟在方法體后昔案,而不是另起一行,這樣可以減少代碼行
【17】Protocol單獨用一個文件來創(chuàng)建电媳,盡量不要與相關(guān)類混在一個文件中踏揣。
【18】代表類方法和實例方法的"+"加號,"-"減號后需要一個空格。
【19】加載xib時名稱最好用NSStringFromClass()匾乓,可以避免書寫錯誤

[self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([SCSmartApplyPhotoCell class]) bundle:nil]
         forCellReuseIdentifier:NSStringFromClass([SCSmartApplyPhotoCell class])];

【20】如果使用第三方庫捞稿,盡量不要修改其內(nèi)部實現(xiàn),而是應(yīng)該再次封裝钝尸,個性定制括享。
【21】如果屬性是BOOL類型,建議在括號中重寫Get方法名稱珍促,已提高代碼可讀性

@property (assign, nonatomic, getter=isShow) BOOL show;

待續(xù),不斷完善中剩愧。

注:上面都是我的一家之言猪叙,如果大家的開發(fā)團(tuán)隊或者公司有自己的編碼規(guī)范,當(dāng)然按照團(tuán)隊的來仁卷。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末穴翩,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锦积,更是在濱河造成了極大的恐慌芒帕,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丰介,死亡現(xiàn)場離奇詭異背蟆,居然都是意外死亡鉴分,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門带膀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來志珍,“玉大人,你說我怎么就攤上這事垛叨÷着矗” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵嗽元,是天一觀的道長敛纲。 經(jīng)常有香客問我,道長剂癌,這世上最難降的妖魔是什么载慈? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮珍手,結(jié)果婚禮上办铡,老公的妹妹穿的比我還像新娘。我一直安慰自己琳要,他們只是感情好寡具,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著稚补,像睡著了一般童叠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上课幕,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天厦坛,我揣著相機與錄音,去河邊找鬼乍惊。 笑死杜秸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的润绎。 我是一名探鬼主播撬碟,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼莉撇!你這毒婦竟也來了呢蛤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤棍郎,失蹤者是張志新(化名)和其女友劉穎其障,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涂佃,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡励翼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年蜈敢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抚笔。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扶认,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出殊橙,到底是詐尸還是另有隱情辐宾,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布膨蛮,位于F島的核電站叠纹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏敞葛。R本人自食惡果不足惜誉察,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惹谐。 院中可真熱鬧持偏,春花似錦、人聲如沸氨肌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怎囚。三九已至卿叽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恳守,已是汗流浹背考婴。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留催烘,地道東北人沥阱。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像颗圣,于是被迫代替她去往敵國和親喳钟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容