1、如果不打算公开某个常量,则应将其定义在使用该常量的实现文件里,应该这样子定义:
static const
NSTimeInterval
kAnimationDuration
=
0
.3;
注:变量一定要同时用static与const来声明。
如果试图修改由const修饰符所声明的变量,那么编译器就会报错。
2、有时候需要对外公开某个常量。
比方说,你可能要在类代码中调用NSNotificationCenter以通知他人。用一个对象来派发通知,令其他欲接收通知的对象向该对象注册,这样就能实现此功能了。派发通知时,需要使用字符串来表示此项通知的名称,而这个名字就可以声明为一个外界可见的常值变量(constant variable)。这样的话,注册者无须知道实际字符串值,只需以常值变量来注册自己想要接收的通知即可。
应该这样子定义:
//字符串
// In the header file
extern NSString *const EOCStringConstant;
// In the implementation file
NSString *const EOCStringConstant = @"VALUE";
//常量
// EOCAnimatedView.h
extern const NSTimeInterval EOCAnimatedViewAnimationDuration;
// EOCAnimatedView.m
const NSTimeInterval EOCAnimatedViewAnimationDuration = 0.3;