代碼使用規(guī)范實在太多抗悍,這里暫時列出部分踊淳。一些比較復雜的規(guī)范需要單獨說明涣楷,列表如下。
- 整形數(shù)的使用規(guī)范
- 使用CGGeometry方法獲取CGRect數(shù)據(jù)
- 屬性內(nèi)存管理相關修飾符的使用規(guī)范
- 屬性聲明在implementation與extension的使用規(guī)范
- [Apple] :Apple 明確給出建議
- [Google] :Google 明確給出建議
- [General] :通用做法(主觀)
簡單使用規(guī)范 [Google]
不要在 init 方法中盖桥,將成員變量初始化為 0 或者 nil。毫無必要恬惯。
僅需要使用 [[Class alloc] init] 來生成對象時誉尖,才可以使用 new 來代替。
Google 在 MRC 下的建議是“不要使用 NSObject 類方法 new腹暖,也不要在子類中重載它”汇在,理由是"由于類方法 new 很少使用,這使得有關內(nèi)存分配的代碼審查更困難"脏答。由于在 ARC 下無需擔心內(nèi)存管理的問題糕殉,所以在僅需要 [[Class alloc] init] 時也可以使用 new 來代替。保持公共 API 簡單殖告。避免 “廚房水槽(kitchen-sink)” 式的 API阿蝶。如果一個函數(shù)壓根沒必要公開,就不要這么做黄绩。用私有類別保證公共頭文件整潔羡洁。
當包含一個使用 Objective-C、Objective-C++ 的頭文件時爽丹,使用 #import 筑煮。當包含一個使用標準 C、C++ 頭文件時粤蝎,使用 #include真仲。頭文件應該使用 #define 保護。
字符串應使用 copy 屬性初澎。
接受 NSString 作為參數(shù)的 setter秸应,應該總是 copy 傳入的字符串。
使用 nil 的檢查來檢查應用程序的邏輯流程碑宴,而不是避免崩潰软啼。Objective-C 運行時會處理向 nil 對象發(fā)送消息的情況。
Objective-C 的方法標識符中墓懂,只使用 BOOL焰宣。
不要直接比較 YES/NO 和 BOOL 變量。不僅僅因為影響可讀性捕仔,更重要的是 BOOL 為無符號字符型匕积,這樣比較的結果可能與你預期的不同盈罐。
BOOL great = [foo isGreat];
if (great == YES) // 錯誤
if (great) // 正確
- 只運行在 iOS 下的代碼,優(yōu)先考慮使用自動 synthesize 實例變量闪唆。
博客:xuyafei.cn
簡書:jianshu.com/users/2555924d8c6e
微博:weibo.com/xuyafei86