您的位置:首页 > 移动开发 > IOS开发

iOS 常量和全局变量的定义

2015-07-31 15:23 225 查看
一、常量:

如果要定义一组相关的常量,尽量使用枚举类型( 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、给全局变量初始化或者赋值:

extern NSString *url;

url = [[NSString alloc] initWithFormat:@"http://www.hbcfg.net"];//指针类型;需要alloc

extern int count;

count = 0;//非指针类型


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

当然还有其他的方法:可以在AppDelegate中声明并初始化全局变量,使用单例访问全局变量等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: