#define和FOUNDATION_EXPORT区别

定义一个常量 #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])

  • 第一种:是直接比较指针地址,
    第二种:则是比较字符串的每一个字符是否相等,
    看出来第一种的效率更高

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

推荐阅读更多精彩内容