iOS-static和const联合使用;使用static const 与 #define

static和const联合使用:
   static将一个全局变量变成局部变量
   const将一个局部变量变成局部常量

      // 定义了一个局部常量
      static const CGFloat ZMJRed = 0.4;

使用static const 与 #define:

    使用static const修饰变量和宏定义的比较
        相同点
            都不能再被修改
            一处修改,其它都改了
        不同点
            static const修饰变量只有一份内存
            宏定义,只是简单的替换,每次使用都需要创建一份内存
    结论
        使用static const修饰更加高效,在同一个文件内可以使用static const取代#define

    // static const修饰变量只有一份内存
    static const CGFloat ZMJRed = 0.4;

    // 宏定义,只是用0.4替换ZMJRed,每次使用都需要创建一份内存
    #define ZMJRed 0.4

const实际开发的应用:

 一般会先新建ZMJConst.h文件专门存放常量的引用,网络url宏定义

如: extern const CGFloat ZMJRed;
      extern NSString * const ZMJName;

 可以模仿系统UIKIT_EXTERN来代替extern,逼格更高!

  一般会新建ZMJConst.m文件专门存放 const修饰的变量,需要用的时候导入头文件就可以了。

const CGFloat DMFontSize20 = 20.0f;

NSString *const DMApp = @"xxxxx";

原文地址:https://www.cnblogs.com/linxiu-0925/p/5364891.html