代碼規(guī)范

駝峰命名法
OC提倡自注釋命名方式,即通過多個單詞組合成一個有含義的類名,變量名或者方法名.
為了方便區(qū)分單詞,采用單詞首字母大寫的方式.

  • 類名所有單詞首字母都要大寫
  • 變量名第一個單詞首字母小寫
  • 方法名采用動賓結(jié)構(gòu),也就是'動詞'+'名詞'的形式;第一個單詞首字母小寫
    例如:
    用戶信息類:
@interface UserInfo: NSObject{ 
//用戶名變量 
NSString *_userName;
//用戶學(xué)生編號
 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;

關(guān)系詞

'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;

多參數(shù)方法, 除第一個參數(shù),其他參數(shù)名通常不帶有關(guān)系詞

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

屬性的聲明

@property后面加空格
@property (nonatomic, readonly) UITableViewStyle style;

常量的定義

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

代碼分段#pragma mark -

在代碼中通常使用'#pragma mark - '來對代碼進行分段,方便后期維護.
例如@implementation ViewController
#pragma 懶加載
- (UITableView *)someTable{return nil;}
- (UIButton *)someBtn{return nil;}
#pragma mark - UITableViewDataSource 表格數(shù)據(jù)
- (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’關(guān)鍵詞之間隔一行以上,否則沒有代碼提示

#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;

構(gòu)造方法的返回值選擇instancetype

- (instancetype)init
- (instancetype)initWithCoder:(NSCoder *)aDecoder
+ (instancetype)string;
+ (instancetype)stringWithString:(NSString *)string;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子楣号,更是在濱河造成了極大的恐慌逆趋,老刑警劉巖疟丙,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡卤恳,警方通過查閱死者的電腦和手機鳞滨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門洞焙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拯啦,你說我怎么就攤上這事澡匪。” “怎么了褒链?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵唁情,是天一觀的道長。 經(jīng)常有香客問我甫匹,道長甸鸟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任兵迅,我火速辦了婚禮抢韭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恍箭。我一直安慰自己刻恭,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布季惯。 她就那樣靜靜地躺著吠各,像睡著了一般。 火紅的嫁衣襯著肌膚如雪勉抓。 梳的紋絲不亂的頭發(fā)上贾漏,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機與錄音藕筋,去河邊找鬼纵散。 笑死,一個胖子當(dāng)著我的面吹牛隐圾,可吹牛的內(nèi)容都是我干的伍掀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼暇藏,長吁一口氣:“原來是場噩夢啊……” “哼蜜笤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起盐碱,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤把兔,失蹤者是張志新(化名)和其女友劉穎沪伙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體县好,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡围橡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了缕贡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翁授。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖晾咪,靈堂內(nèi)的尸體忽然破棺而出收擦,到底是詐尸還是另有隱情,我是刑警寧澤禀酱,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布炬守,位于F島的核電站,受9級特大地震影響剂跟,放射性物質(zhì)發(fā)生泄漏减途。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一曹洽、第九天 我趴在偏房一處隱蔽的房頂上張望鳍置。 院中可真熱鬧,春花似錦送淆、人聲如沸税产。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辟拷。三九已至,卻和暖如春阐斜,著一層夾襖步出監(jiān)牢的瞬間衫冻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工谒出, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留隅俘,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓笤喳,卻偏偏與公主長得像为居,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子杀狡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

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

  • iOS編程規(guī)范0規(guī)范 0.1前言 為??高產(chǎn)品代碼質(zhì)量,指導(dǎo)廣大軟件開發(fā)人員編寫出簡潔蒙畴、可維護、可靠呜象、可 測試忍抽、高效...
    iOS行者閱讀 4,459評論 21 35
  • 推薦文章:禪與 Objective-C 編程藝 前言 為??高產(chǎn)品代碼質(zhì)量,指導(dǎo)廣大軟件開發(fā)人員編寫出簡潔八孝、可維護董朝、...
    WolfTin閱讀 2,761評論 0 1
  • 代碼規(guī)范基本上都是從蘋果原生示例代碼中總結(jié)出來的, 大家可以多查看蘋果示例代碼進行學(xué)習(xí). 駝峰命名法OC提倡自注釋...
    skylor閱讀 277評論 0 0
  • 示例 下面是一個示例頭文件鸠项,演示了@interface聲明的正確注釋和間隔 一個示例源文件,演示了一個接口的@ i...
    我是Damo閱讀 2,001評論 2 5
  • 注: Copy 自 cocoachina 英文原文:Swift Style Guide 翻譯作者:碼農(nóng)網(wǎng) – 豆照...
    Mid_Chan閱讀 703評論 0 0