iOS FOUNDATION_EXPORT 与#define

今天查看系统文件,看到了FOUNDATION_EXPORT这个修饰词,对于我这种初涉iOS编程的初学者来说,对于这个非常陌生,所以就上网搜了一下,原来FOUNDATION_EXPORT是用来定义常量的,我这里就用这篇文章记录整理一下我搜到的内容,给自己当作一个笔记。

FOUNDATION_EXPORT 与 #define 都可以用来定义常量

.h文件

FOUNDATION_EXPORT  NSString *const kMyConstantString;

.m文件是这样定义的

NSString *const kMyConstantString = @"hello world";

另一种就是常用的#define 方法定义常量了

#define kMyConstantString @"Hello"

那么他们有什么区别呢?
使用FOUNDATION_EXPORT方法在检测字符串的值是否相等的时候效率更快.
可以直接使用(myString == MyFirstConstant)来比较, 而define则使用的是([myString isEqualToString:MyFirstContant])
哪个效率更高,显而易见了

第一种是直接比较指针地址
第二种则是一一比较字符串的每一个字符是否相等.

作者:岁变
链接:https://www.jianshu.com/p/0694eb214d87
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容