1、简介

       Objective-C中使用常量有两种方式,一种是通过C的的预处理#define来定义,通过此方式预定义的常量,在编译器编译的时候用#define定义的内容代替。第二种是通过C的关键字extern,表示这个变量已经声明,这里只是引用。这种做法的其中一个好处是修改了变量的内容,不会引用重新编译。


2、实践

       第一种方式:建立一个头文件如Constants.h,不需要.m文件,在此文件中直接使用#define定义,在需要用到里面常量的文件中,#import该文件即可,代码如下:

//NSString类型
#define MY_CONSTANT1    @"my_constant"
//string类型
#define MY_CONSTANT2    "my_constant"
//×××
#define MY_CONSTANT3    100


      第二种方式:建立文件Constants.h,需要.m文件,在.h文件中实现定义,在.m文件中进行赋值。在需要使用此常量的地方#import此文件即可。其中const表示变量不可修改,是个常量。代码如下:

       Constants.h文件代码如下:

#import <Foundation/Foundation.h>
extern NSString * const MY_CONSTANT1;
@interface Constants : NSObject {
}
@end

     Constants.m文件代码如下:

#import "Constants.h"
NSString * const MY_CONSTANT1 = @"my_constant1";
@implementation Constants
@end


       假如常量只是在本文件中用到,可以直接在.m文件中定义,代码如下:

#import "ViewController.h"
NSString * const INNER_CONSTANT1 =@"just use in this file";
@implementation ViewController
- (void)loadView {
    NSLog(@"load view: %@,,INNER_CONSTANT1);
}