iOS代碼規(guī)范 2016版

代碼規(guī)范基本上都是從蘋果原生示例代碼中總結出來的, 大家可以多查看蘋果示例代碼進行學習.

駝峰命名法
OC提倡自注釋命名方式,即通過多個單詞組合成一個有含義的類名,變量名或者方法名.為了方便區(qū)分單詞,采用單詞首字母大寫的方式.* 類名所有單詞首字母都要大寫* 變量名第一個單詞首字母小寫* 方法名采用動賓結構,也就是'動詞'+'名詞'的形式;第一個單詞首字母小寫例如:用戶信息類: @interface UserInfo: NSObject{ //用戶名變量 NSString *_userName //用戶學生編號 int _userStudentCount;} //創(chuàng)建用戶名方法: - (void)createUserName;@end

空格的使用方式
聲明變量時,指針符號*
與變量名無間隔,與類名有一個空格間隔
形式上是 類名 *變量名- NSString *user = @"";- NSArray *userList = @"";

使用,
, ;
時, 與前方單詞無間隔,后面加一個空格
形式上是'單詞, '- @interface UserInfo: NSObject{} @end- @[@"11", @"22", @"33", @"44"];- @{@"userName": @"美玲", @"sex": @"女", @"age": @22};- NSLog(@"%@", userList);- for(int i = 0; i < 9; i++){}

三目運算符
條件語句 ? 真值 : 假值;NSString *category = age <= 18 ? @"小孩" : @"成年人";為變量做非空處理NSString *aStr = nil;aStr = aStr ?: @"";代碼作用是判斷aStr是否為nil如果是nil,那么賦值為@""; 否則什么都不做

運算符=, ==, +, -, *, /, %, +=, -=, *=, /=, %=
前后加空格

  • a += 4;* int c = b + 2;* NSString name = @"美玲"; if(i == 5){}

自增自減
i++; i--; --i; ++i; 變量和運算符之間無空格for(int i = 0; i < 9; i++){}

方法的聲明
對象方法或者類方法的+
, -
號后面加空格

  • (void)createUser;+ (id)userWithType;

單例方法
通常以'standard', 'default', 'main', 'shared', 'current'單詞開頭+ (UIApplication *)sharedApplication+ (UIScreen *)mainScreen; + (UIDevice *)currentDevice;+ (NSUserDefaults *)standardUserDefaults;+ (NSFileManager *)defaultManager;

類工廠方法
通常以類名開頭+ (instancetype)buttonWithType:(UIButtonType)buttonType;+ (instancetype)stringWithString:(NSString *)string;

關系詞
'At', 'From', 'To', 'With', 'By'- (unichar)characterAtIndex:(NSUInteger)index;- (NSString *)substringFromIndex:(NSUInteger)from;- (NSString *)substringToIndex:(NSUInteger)to;- (NSString *)substringWithRange:(NSRange)range;- (NSString *)stringByAppendingString:(NSString *)aString;

多參數方法, 除第一個參數,其他參數名通常不帶有關系詞

  • (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)searchRange;

屬性的聲明
@property后面加空格@property (nonatomic, readonly) UITableViewStyle style;

常量的定義
代碼中盡量不要出現字符串或者數字, 因為后期維護時不方便.習慣上通過把字符串, 數字聲明為常量, 做到常量的統(tǒng)一管理.常量定義的方式有以下兩種:#define 宏定義static const 靜態(tài)常量不管聲明哪種類型的常量,變量名都需要添加'k'開頭,這樣可以有效防止命名沖突問題具體使用時:聲明對象類型的常量時, 習慣使用:static NSString *const kCellIdentify = @"CellName";聲明基礎類型常量時, 習慣使用:#define kDuration 30

代碼分段#pragma mark -

在代碼中通常使用'#pragma mark - '來對代碼進行分段,方便后期維護.例如@implementation ViewController#pragma 懶加載- (UITableView *)someTable{return nil;}- (UIButton *)someBtn{return nil;}#pragma mark - UITableViewDataSource 表格數據- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{return 0;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{return nil;}#pragma mark - UITableViewDelegate 表格代理- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{}#pragma mark - 生命周期- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.}- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated];}- (void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end

成員變量的聲明
成員變量要使用'_'進行標示@interface UserInfo: NSObject{ NSString *userName; //成員變量添加下劃線}@end

協(xié)議的使用
協(xié)議的聲明要跟’#import’關鍵詞之間隔一行以上,否則沒有代碼提示

import <UIKit/UIKit.h> @protocol ViewControllerDelegate <NSObject>@end@interface ViewController : UIViewController@property (nonatomic, weak) id<UITableViewDelegate> delegate;@end

協(xié)議變量要使用weak修飾
@property (nonatomic, weak) id<UITableViewDelegate> delegate;

構造方法的返回值選擇instancetype

  • (instancetype)init- (instancetype)initWithCoder:(NSCoder *)aDecoder+ (instancetype)string;+ (instancetype)stringWithString:(NSString *)string;

原文鏈接:http://blog.csdn.net/jiyingxin/article/details/50448258

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,517評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 99,087評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,521評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,493評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,207評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,603評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,624評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,813評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 49,364評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,110評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,305評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,874評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,532評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,953評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,209評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,033評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,268評論 2 375

推薦閱讀更多精彩內容