一些第三方库中会用到这个宏,我自己日常开发中没有使用过,点进去一看竟然是系统的宏,在往里点,还是不知道什么意思,那只好百度一下了。原来它是用来定义常量的。
用法:
.h文件中这样写:
FOUNDATION_EXPORT NSString * const string1;
FOUNDATION_EXPORT NSString * const string2;
.m文件中这样写
NSString * const string1 =@"123";
NSString * const string2 =@"456";
相当于#define的作用,但是和#define相比,有不一样的地方。
当定义一个局部变量 NSString* string =@"456"; 打印 string 和 string2 的地址,会惊奇地发现两个地址是一样的,这时候比较两个字符串就可以用到 == 来比较,而使用#define必须使用isEquleTo来比较,前者效率更高一点。
另外一个文件中使用太多的宏时,会增大二进制文件,这个时候可以使用FOUNDATION_EXPORT
网友评论