聲明全局常量
在頭文件中使用extern來聲明全局常量,并在相關實現文件中定義其值.這種常量要出現在全局符號表中,所以其名稱應加以區(qū)隔,通常用與之相關的類名做前綴.
.h中
extern NSString *const GlobalStr;
.m中
NSString *const GlobalStr = @"globalStr";
聲明局部常量
在實現文件中使用static const來定義”只在編譯單元內可見的常量”.由于此類常量不在全局符號表中,所以無需為其名稱加前綴.
.m中
static NSString *const GlobalStr = @"globalStr";
***不要用預處理指令定義常量.這樣定義出來的常量不含類型信息,編譯器只是會在編譯前據此執(zhí)行查找與替換操作.即使有人重新定義了常量值,編譯器也不會產生警告信息,這將導致應用程序中的常量值不一致.
摘自Effective Objective-C 2.0