代碼規(guī)范

命名規(guī)范

總的來說, iOS命名兩大原則是:可讀性高和防止命名沖突(通過加前綴來保證). Objective-C 的命名通常都比較長, 名稱遵循駝峰式命名法

常量

對于常量命名最好在前面加上字母k作為標記图谷,例如:

static const NSTimeInterval kAnimationDuration = 0.3;

Tips:

#define 宏定義

static 靜態(tài)

const 常量

區(qū)別

宏: 宏定義只是簡單的文本替換雏亚,沒有任何類型信息杆烁。宏就是把源代碼中用到這個宏的地方進行一個簡單的文本替換。

常量:

四種寫法:
static const NSString *DDString = @"女神大人漓糙,么么噠";
const NSString *DDString = @"女神大人,么么噠";
NSString const *DDString = @"女神大人奕筐,么么噠";
NSString * const DDString = @"女神大人泪酱,么么噠";

這幾種有什么區(qū)別呢,簡單點說就是 const 右邊的東西 不能修改茴肥。

例如:

//這個表示 *DDString 這個指針不能修改
NSString const *DDString = @"女神大人坚踩,么么噠";
//這個表示 DDString 這個字符串內(nèi)容不能修改,所以應(yīng)該采用這種
NSString * const DDString = @"女神大人瓤狐,么么噠";

如果加上Static 就是只能在本類里面訪問瞬铸。如果沒有加,還可以通過extern來訪問础锐。

enum的書寫

如果如下書寫enum.

typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
    UIViewAnimationTransitionNone,
    UIViewAnimationTransitionFlipFromLeft,
    UIViewAnimationTransitionFlipFromRight,
    UIViewAnimationTransitionCurlUp,
    UIViewAnimationTransitionCurlDown,
};

這邊需要注意的是: 枚舉類型命名要加相關(guān)類名前綴并且枚舉值命名要加枚舉類型前綴.

變量和對象的命名

給一個對象命名一般遵循: 修飾 + 類型嗓节。

例如

titleLabel
confirmButton
XXXArray
XXXDictionary

編程規(guī)范

為了保持編程的dry,要盡量把重復(fù)部分封裝起來。

下面推薦的一些小細節(jié)的編程規(guī)范吧皆警。

  1. 判斷nil或者YES/NO
Preferred:
    if (someObject) { ... } 
    if (!someObject) { ... }
    
Not preferred:
    if (someObject == YES) { ...} 
    if (someObject != nil) { ...}

if (someObject == YES)容易誤寫成賦值語句, 自己給自己挖坑了...而且if (someObject)寫法很簡潔, 何樂而不為呢?

  1. 條件賦值
Preferred:
    result = object ? : [self createObject];

Not preferred:
    result = object ? object : [self createObject];
  1. 初始化方法
Perferred:
    NSArray *names = @[@"Brian", @"Matt", @"Chris", @"Alex", @"Steve"];
    NSDictionary *productManagers = @{@"iPhone" : @"Kate", @"iPad" : @"Kamal"};
    NSNumber *shouldUseLiterals = @YES;
    NSNumber *buildingZIPCode = @10018;

初始化多用字面量方法一直是提倡的行為拦宣。

  1. BOOL 賦值
Preferred:
    BOOL isAdult = age > 18;

Not preferred:
    BOOL isAdult;
    if (age > 18)
    {
        isAdult = YES;
    }
    else
    {
        isAdult = NO;
    }

  1. 拒絕死值
Preferred:
    if (car == Car.Nissan)
    
    const int adultAge = 18;
    if (age > adultAge) { ... }

Not preferred:
    if (carName == "Nissan")

    if (age > 18) { ... }
  1. weakSelf 防止循環(huán)引用
__weak typeof(self) weakSelf = self;
dispatch_block_t block =  ^{
    [weakSelf doSomething]; // weakSelf != nil
    // preemption, weakSelf turned nil
    [weakSelf doSomethingElse]; // weakSelf == nil
};

參考

http://www.cocoachina.com/ios/20151014/13678.html
這篇持續(xù)更新,慢慢積累.......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市耀怜,隨后出現(xiàn)的幾起案子恢着,更是在濱河造成了極大的恐慌,老刑警劉巖财破,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異从诲,居然都是意外死亡左痢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俊性,“玉大人略步,你說我怎么就攤上這事《ㄒ常” “怎么了趟薄?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長典徊。 經(jīng)常有香客問我杭煎,道長,這世上最難降的妖魔是什么卒落? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任羡铲,我火速辦了婚禮,結(jié)果婚禮上儡毕,老公的妹妹穿的比我還像新娘也切。我一直安慰自己,他們只是感情好腰湾,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布雷恃。 她就那樣靜靜地躺著,像睡著了一般费坊。 火紅的嫁衣襯著肌膚如雪倒槐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天葵萎,我揣著相機與錄音导犹,去河邊找鬼。 笑死羡忘,一個胖子當著我的面吹牛谎痢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卷雕,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼节猿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漫雕?” 一聲冷哼從身側(cè)響起滨嘱,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浸间,沒想到半個月后太雨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡魁蒜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年囊扳,在試婚紗的時候發(fā)現(xiàn)自己被綠了吩翻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡锥咸,死狀恐怖狭瞎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搏予,我是刑警寧澤熊锭,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站雪侥,受9級特大地震影響碗殷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜校镐,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一亿扁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸟廓,春花似錦从祝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至员咽,卻和暖如春毒涧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贝室。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工契讲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人滑频。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓捡偏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親峡迷。 傳聞我的和親對象是個殘疾皇子银伟,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

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

  • 代碼格式 使用空格而不是制表符 Tab 不要在工程里使用 Tab 鍵,使用空格來進行縮進绘搞。在 Xcode > Pr...
    small_Sun閱讀 1,354評論 1 3
  • 轉(zhuǎn)載自:『博愛』 Objective-C-Coding-Guidelines-In-Chinese 概要 Obje...
    王_堯閱讀 1,199評論 0 2
  • iOS編程規(guī)范0規(guī)范 0.1前言 為??高產(chǎn)品代碼質(zhì)量,指導(dǎo)廣大軟件開發(fā)人員編寫出簡潔彤避、可維護、可靠夯辖、可 測試琉预、高效...
    iOS行者閱讀 4,446評論 21 35
  • 業(yè)界資深人,家具設(shè)計師+軟裝設(shè)計師 雙料 打算玩這個 有人賞臉么蒿褂?小眾的垂直行業(yè)覆蓋
    紋物閱讀 248評論 0 1
  • 2017-10-12 大家是時候為今天的好種子澆水施肥曬太陽[太陽] [咖啡]咖啡冥想[咖啡] 我近期最想實現(xiàn)的一...
    張蓉萍閱讀 219評論 0 0