美文网首页
#define和FOUNDATION_EXPORT区别

#define和FOUNDATION_EXPORT区别

作者: 同心圆圈 | 来源:发表于2017-07-19 14:48 被阅读15次

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

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

    相关文章

      网友评论

          本文标题:#define和FOUNDATION_EXPORT区别

          本文链接:https://www.haomeiwen.com/subject/kcylkxtx.html