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";