iOS代碼規范
命名規范
類命名
l 首字母大寫,之后每個單詞首字母都大寫
l 使用能夠反映類功能的名詞短語
l 文件和類同名
l 舉例:BaseClient、ImageStore
特殊類命名
l 如果是視圖控制器的子類應添加后綴“ViewController”或者“Controller”
l 如果是視圖的子類應添加后綴“View”
l 如果是按鈕的子類應添加后綴“Button”
……
l 舉例:SettingsViewController、NavigationView
分類(類別)命名
l 與類命名相同,此外需添加要擴展的類名和“+”
l 舉例:NSString+URLEncoding
協議(委托)命名
l 與類命名相同,此外需添加“Delegate”后綴
l 舉例:ReplyViewDelegate
方法命名
l 首字母小寫,之后每個單詞首字母都大寫
l 方法名使用動詞短語
l 舉例:- (void)setPostValue:(int)value
方法參數命名
l 首字母小寫,之后每個單詞首字母都大寫
l 具有足夠的說明性
l 不需要添加類型前綴
l 舉例:- (void)sendUserInfo:(NSDictionary *)userInfo
變量命名
l 首字母小寫,之后每個單詞首字母都大寫
l 具有足夠的說明性
l 成員變量不需要添加“_m”前綴
l 成員變量添加“_”前綴
常量
l 常量(預定義,局部常量等)使用小寫k開頭的駝峰法
l 舉例:kInvalidHandle , kWritePerm
l 枚舉類型命名首字母大寫,之后每個單詞首字母都大寫,最后加“s”
l 枚舉變量使用枚舉類型去掉“s”作為前綴,每個單詞首字母大寫,中間不允許加下劃線
l 舉例:
typedef enum UIControlEvents{
UIControlEventTouchDown,
UIControlEventTouchUpInside
}UIControlEvents;
圖片命名
l 使用英文,首字母大寫,之后每個單詞首字母都大寫
l 添加模塊名作為前綴,避免沖突
l 圖片應該與類文件一樣,按模塊分組放置
分組命名
l 使用英文,首字母大寫,之后每個單詞首字母都大寫
l 每個分組使用模塊的名字
l 使用的開源庫統一放在“Library”分組下
l 使用的公共組件統一放在“Common”分組下
l 視圖控制器及AppDelegate統一放在“Controllers”分組下
書寫規范
注釋
l 文件都包含文件頭,要說明文件名、作者、創建時間、變更記錄
l 多人協作完成項目時,public接口的每個方法都應該添加關于函數,參數,返回值以及副作用的注釋
l 當if語句的判斷條件復雜時,需要用注釋說明判斷內容
l 接口類(繼承于BaseClient)的頭文件每個方法前都應該注明方法的作用
方法
l 留一個空格在-或+和返回類型之間,但參數列表里的參數之間不要留間隔,每個冒號之前都必須有對該參數的說明詞,如:
p - (void)doSomethingWithString:(NSString *)string number:(int)num
l 如果參數過多,推薦每個參數各占一行。使用多行的情況下,在參數前加冒號用于對齊,如:
p -(void)doSomethingWith:(GTMFoo *)theFoo
rect:(NSRect)theRect
interval:(float)theInterval
其他規范
l 操作符前后都要加空格
l 避免相同的代碼段在多個地方出現
l 語句嵌套層次不得超過3層
l 每個實現文件建議在500行以內,不能超過1000行,超過之后應考慮通過抽象類對代碼進行重構
l 及時刪除或注釋掉無用的代碼
l UITableViewCell里面的network client都要委托出來
l 點擊按鈕之后需要切換按鈕圖片,當這兩張圖片沒有關聯時(例如一張圖片相比另一張圖片有選中效果),不應該設置為UIControlSelected
l 控件布局使用相對坐標
l 確定不使用的代碼應該刪除來自:http://blog.csdn.net/zhaoxy_thu/article/details/9090963