表達式
1.IF語句
- 表達式(if/else/switch/while等)和花括號總是在同一行打開,在新一行中關閉。
- if語句如果沒有跟else,則可以不需要花括號。
if (isOpen) {
// Do something
} else {
// Do something else
}
if (isBad) return something;
2.SWITCH語句
花括號在case語句中不是必須的,但是當一個case語句中包含多行代碼時,大括號應該加上;
case的值不應該是魔法數字,應通宏定義、常量、枚舉等賦予具體意義。
switch (tag) {
case alertTag:
// ...
break;
case buttonTag: {
// ...
// Muti-line code
break;
}
default:
// ...
break;
}
當switch的對象值是枚舉類型時,可以省略'default'語句。
typedef NS_ENUM(NSUInteger, EarnType) {
EarnTypeChangePic = 1, //換頭像
EarnTypeChangeNick = 2, //換昵稱
EarnTypeChangeSchool = 3, //換學校
};
...
EarnType type;
switch (type) {
case EarnTypeChangePic: {
// ...
break;
}
case EarnTypeChangeNick: {
// ...
break;
}
case EarnTypeChangeSchool: {
// ...
break;
}
}
注意:XCode中有可以快速編寫switch語的插件
點擊這里
注釋
由于Objctive-C自我描述性比較強,代碼中盡量少注釋,讓代碼能自我描述。不過需要注釋的地方,也不能省略,要清楚的解釋對應代碼含義或作用,杜絕無效注釋。
注釋也需要時常維護,保證最新。
幾類注釋
1.普通注釋
即//注釋
或/*注釋*/
類型的注釋,常用在代碼需要解釋的地方,或者暫時不使用的代碼塊。
// 注釋
/*
...
大段注釋
...
*/
一個實例
// 非當前審核版本顯示所有
if ([reviewVersion compare:currentVersion] != NSOrderedSame) {
return NO;
}
else {
// reviewVersion=nil
// reviewVersion 和 currentVersion一樣
// 表示在審核
return YES;
}
注意:// 類型的注釋,在斜杠后空一格 商討
2.文檔注釋
可以用于生成文檔的注釋。
凡是以 ///
、/**
或/*!
開頭的注釋塊,都算所appledoc注釋。
/// 這是單行注釋。
/** 這也是單行注釋 */
/*! 同樣是單行注釋 */
/** 這也是單行注釋,
* 第二行會接上第一行。
*/
- 注釋塊中,每一行開頭的空格和
*
字符多數情況都會被appledoc忽略。 - 連續的兩行(即沒有間隔空行)的注釋,將被合并成一個段落,并忽略換行,就像html。
- 在注釋塊內,appledoc支持如下語法:Markdown、HTML、HeaderDoc Tags。
注意:寫文檔注釋可以使用XCode中的插件
VVDocumenter-Xcode
3.標記注釋
用于在項目中作為標記的注釋,通常有以下四種:
//TODO:
用于預留接口或方法的標記。
//FIXME:
用于標記BUG等需要修復的地方
//???:
有疑問的代碼,可以用于review
//!!!:
自定義說明
例如
if (isGood) {
//TODO: 做好結果處理
}
else {
//FIXME: BUG#3321 閃退,不能用0除
return 8/0;
}
//???: 這是干嘛- -
a=a;
//!!!: 好思路,先標記下,我要寫到小本本里學習學習
x = 1;
y = 2;
x = x ^ y;
y = x ^ y;
x = x ^ y;
// x,y交互完成
注意:標記注釋可以和一個XCode的插件一起使用
XToDo