一、常量:
如果要定义一组相关的常量,尽量使用枚举类型( 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;//非指针类型
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中声明并初始化全局变量,使用单例访问全局变量等