開發情景:如果要定義一個動畫時間持續時長
方式一:#define ANIMATION_DURATION 0.3
說明:上述的預處理指令會把源代碼中的 ANIMATION_DURATION 字元串替換成 0.3 ,這樣可以實作常量的定義,但這樣定義的常量,沒有類型資訊,動畫的持續 時長應該是NSTimeInterval類型,此處預處理過程會把碰到所有的 ANIMATION_DURATION 一律換成 0.3 ,假設此指令聲明在某個頭檔案中,那麼所有引入 這個頭檔案的代碼,其ANIMATION_DURATION都會被替換為0.3,這樣顯然不夠好。
方式二(推薦):static const NSTimeInterval kAnimationDuration = 0.3
說明:這種方式定義的常量包含了類型資訊,清除的描述了常量的含義,如果常量多的話,清晰明了不會亂
使用注意:如果隻在檔案内使用—在命名前加k
如果在類之外使用—就用類名最為字首
盡量不要在.h檔案中定義常量,在.m檔案中定義
定義的變量要同時使用static和const來聲明(const表示不能修改聲明的變量,如果改名就會報錯;static表示該變量僅在所在的.m檔案中可見,如果不加 static,編譯器會為它建立一個“外部符号”,如果其他檔案重名的話就會報錯)