iOS 常量和全局变量的定义

一、常量:

如果要定义一组相关的常量,尽量使用枚举类型( enumerations ),枚举类型的命名规则和函数的命名规则相同:

1
2
3
4
5
6
7
// 定义一个枚举,注意带有 `_` 的名称是不会被使用的
typedef enum _NSMatrixMode {
NSRadioModeMatrix = 0,
NSHighlightModeMatrix = 1,
NSListModeMatrix = 2,
NSTrackModeMatrix = 3
} NSMatrixMode;

使用匿名枚举定义 bit map :

1
2
3
4
5
6
7
enum {
NSBorderlessWindowMask = 0,
NSTitledWindowMask = 1 << 0,
NSClosableWindowMask = 1 << 1,
NSMiniaturizableWindowMask = 1 << 2,
NSResizableWindowMask = 1 << 3
};

使用 const 定义浮点型或者单个的整数型常量,
enum {
kMyEnum = 2;
};

如果要定义一组相关的整数常量,应该优先使用枚举。常量的命名规范和函数相同:
1
const float NSLightGray;

不要使用 #define 宏来定义常量,如果是整型常量,尽量使用枚举,浮点型常量,使用 const 定义。 #define 通常用来给编译器决定是否编译某块代码,比如常用的:
1
#ifdef DEBUG

注意到一般由编译器定义的宏会在前后都有一个 __ ,比如 __MACH__ 。 

二、全局变量

1.extern:
const & extern区别 :const:只读变量,不允许修改;extern:全局变量 

使用extern关键字法:

        1 、新建Constants.h文件(文件名根据需要自己取),用于存放全局变量;

        2、 在Constants.h中写入你需要的全局变量名,但是在定义时不能对其进行初始化,否则就出错例如:

                  NSString *url;//指针类型
                 int count;//非指针类型

        3  、在需要用到全局变量的文件中引入此文件:

                   #import "Constants.h"  

        4、给全局变量初始化或者赋值:

  1.  extern NSString *url;     
      
    url = [[NSString alloc] initWithFormat:@"http://www.hbcfg.net"];//指针类型;需要alloc   
      
    extern int count;   
      
    count = 0;//非指针类型  

在使用全局变量的时候就和使用普通变量一样使用了。

当然还有其他的方法:可以在AppDelegate中声明并初始化全局变量,使用单例访问全局变量等


你可能感兴趣的:(iOS)