點標記語法
屬性和冪等方法(多次調用和一次調用返回的結果相同)使用點標記語法訪問,其他的情況使用方括號標記語法。
良好的風格:
view.backgroundColor = [UIColor orangeColor];
[UIApplication sharedApplication].delegate;
不良的風格:
[view setBackgroundColor:[UIColor orangeColor]];
UIApplication.sharedApplication.delegate;
間距
二元運算符和參數之間需要放置一個空格,一元運算符、強制類型轉換和參數之間不放置空格。關鍵字之后圓括號之前需要放置一個空格。
void *ptr = &value + 10 * 3;
NewType a = (NewType)b;
for (int i = 0; i < 10; i++) {
doCoolThings();
}
數組和字典類型的字面值的方括號兩邊各放置一個空格。
NSArray *theShit = @[ @1, @2, @3 ];
字典字面值的鍵和冒號之間沒有空格,冒號和值之間有一個空格。
NSDictionary *keyedShit = @{ GHDidCreateStyleGuide: @YES };
C函數聲明中,左括號的前面不保留空格,并且函數名應該像類一樣帶有命名空間標識。
良好的風格: void RNCwesomeFunction(BOOL hasSomeArgs);
長的字面值應被拆分為多行。
良好的風格:
NSArray *theShit = @[
@"Got some long string objects in here.",
[AndSomeModelObjects too],
@"Moar strings."
];
NSDictionary *keyedShit = @{
@"this.key": @"corresponds to this value",
@"otherKey": @"remoteData.payload",
@"some": @"more",
@"JSON": @"keys",
@"and": @"stuff",
};
每一行代碼使用4個空格縮進。不使用tab縮進。
方法簽名以及其他關鍵字(if/else/switch/while等)后面跟隨的左花括號總是和語句出現于同一行,而右花括號獨占一行。
良好的風格:
if (user.isHappy) {
//Do something
}
else {
//Do something else
}
如果一個方法內有多個功能區域,可以使用空行分隔功能區域。
每一行代碼不要超過100個字符。
每一個方法之前都有一個99字符寬的注釋行,注釋行相對于使用空行更能提高代碼的辨識度,當一行代碼很長的時候,注釋行也起到了越界檢測的作用。注釋行:
///////////////////////////////////////////////////////////////////////////////////////////////////
條件語句
所有的邏輯塊必須使用花括號包圍,即使條件體只需編寫一行代碼也必須使用花括號。
良好的風格做法:
if (!error) {
return success;
}
不良的風格:
if (!error)
return success;
或:
if (!error) return success;
三元運算符
長的三元運算符應使用圓括號括起來。三元運算符僅用于賦值和做參數。
Blah *a = (stuff == thing ? foo : bar);
合并的nil三元運算符應該盡量避免。
不良的風格:
Blah *b = thingThatCouldBeNil ?: defaultValue;
多分支條件應該使用if語句或重構為實例變量。
良好的風格:
result = a > b ? x : y;
新聞熱點
疑難解答