本文翻譯自:Structuring Modern Objective-C 譯者:Ley,戴倉薯
為 #import 語句分組
這一點我們都時不時遇到過。有多少次你寫了一個(也許是)長長的 implementation 檔案,十幾、二十個 #import 語句隨意堆在開頭?唉呀唉呀唉呀。沒關係!我們來幫忙解決。
#import 的順序是否重要尚存爭議,因此我們先不說它。確定重要的是你要為它們分組。然後為每一組添加註釋。
<QuartzCore data-preserve-html-node=/QuartzCore.h>
不要等到一團亂麻再去收拾——現在就開始整理!以後再往裡添加就很輕鬆了,也讓你的代碼保持整潔。
不要用 #define 來定義常量
此話一出,定是一片嘩然。但是常量的關鍵在於,嗯,它們是常量。名稱不變,值也不變。當你 #define 一個常量,它會定義在其他每一個編譯器檢查到的檔案裡,直到遇到#undef(如果有的話)。呃。這感覺可一點都不像常量,倒像是全域變數之類的東西。
不要這樣做。
取而代之的做法是:將常量在標頭檔裡聲明為 extern 變數,同時在相應的 implementation 檔案中定義。
在標頭檔中:
CGFloat ASHHeaderViewHeight;
然後,在 implementation 中,
CGFloat ASHHeaderViewHeight = ;
現在你的常量可以對任何需要的人可見(他們只需 #import 標頭檔),但對程式的其他部分都不可見。它也不可能被 #undef ,在別處再重新 define (明顯的代碼壞味道)。
註:Michael 指出,嚴格地說,我們應該用 FOUNDATION_EXPORT 來代替 extern 。
合理地命名常量
我不在乎你給常量加的首碼是 'k' 、是類名還是一個隨便什麼首碼,但是要確保一致。並且要有描述性。否則,隨著你的程式碼程式庫越來越大,早晚會產生命名衝突的問題。這一點相信我,不會有錯。
本文翻譯自:Structuring Modern Objective-C 譯者:Ley,戴倉薯