多用類型常量,少用#define預(yù)處理指令
編寫代碼時經(jīng)常要定義常量。例如,要寫一個UI視圖類,此視圖顯示出來之后就播放動畫,然后消失。你可能想把播放動畫的時間提取為常量,通常我們會采取這種方法來做
#define ANIMATION_DURATION 0.3
上述預(yù)處理指令會把源代碼中的ANIMATION_DURATION替換為0.3.。這可能是你想要的結(jié)果,不過這樣定義出來的常量沒有任何類型信息。此外,預(yù)處理過程中會把碰到的所有ANIMATION_DURATION一律替換成0.3,這樣的話加入此定義在某個頭文件中,南那么所有引入了此頭文件的代碼,其ANIMATION_DURATION都會被替換。并且這種替換是在預(yù)編譯的時候替換的,使用宏定義也會大大增加編譯時間。
要想解決此問題,我們可以定義一個類型為NSTimerIntrval的常量
static const NSTimeInterval kAnimationDuration = 0.3;
請注意,用此方法定義的常量包含類型信息,其好處是清晰地描述了常量的含義。