定义一个常量 #define和FOUNDATION_EXPORT有什么不同?
首先看写法上的区别
- 使用#define定义常量的方式
#define KConstantString = @“hello word”;
- 使用FOUNDATION_EXPORT定义常量
.h文件
FOUNDATION_EXPORT NSString * const KConstantString;
.m文件
NSString * const KConstantString = @"hello world";
本质区别
-
使用FOUNDATION_EXPORT方法在检测字符串的值是否相等的时候效率更快.
可以直接使用(string == KConstantString)来比较,
而define使用的是([string isEqualToString: KConstantString]) -
第一种:是直接比较指针地址,
第二种:则是比较字符串的每一个字符是否相等,
看出来第一种的效率更高
网友评论