定義一個(gè)常量 #define和FOUNDATION_EXPORT有什么不同类垦?
首先看寫法上的區(qū)別
- 使用#define定義常量的方式
#define KConstantString = @“hello word”;
- 使用FOUNDATION_EXPORT定義常量
.h文件
FOUNDATION_EXPORT NSString * const KConstantString;
.m文件
NSString * const KConstantString = @"hello world";
本質(zhì)區(qū)別
使用FOUNDATION_EXPORT方法在檢測(cè)字符串的值是否相等的時(shí)候效率更快.
可以直接使用(string == KConstantString)來比較,
而define使用的是([string isEqualToString: KConstantString])第一種:是直接比較指針地址,
第二種:則是比較字符串的每一個(gè)字符是否相等龙填,
看出來第一種的效率更高