static和const聯合使用:
static將一個全局變量變成局部變量
const將一個局部變量變成局部常量
// 定義了一個局部常量
static const CGFloat ZMJRed = 0.4;
使用static const 與 #define:
使用static const修飾變量和宏定義的比較
相同點
都不能再被修改
一處修改,其它都改了
不同點
static const修飾變量只有一份內存
宏定義,只是簡單的替換,每次使用都需要創建一份內存
結論
使用static const修飾更加高效,在同一個文件內可以使用static const取代#define
// static const修飾變量只有一份內存
static const CGFloat ZMJRed = 0.4;
// 宏定義,只是用0.4替換ZMJRed,每次使用都需要創建一份內存
#define ZMJRed 0.4
const實際開發的應用:
一般會先新建ZMJConst.h文件專門存放常量的引用,網絡url宏定義
如: extern const CGFloat ZMJRed;
extern NSString * const ZMJName;
可以模仿系統UIKIT_EXTERN來代替extern,逼格更高!
一般會新建ZMJConst.m文件專門存放 const修飾的變量,需要用的時候導入頭文件就可以了。
const CGFloat DMFontSize20 = 20.0f;
NSString *const DMApp = @"xxxxx";