要点
1.不要使用预处理指令定义常量,这样做定义出来的常量不含信息类型,编译器只是会在编译前据此执行查找与替换操作。即使有人重新定义了常量值,编译器也不会产生警告信息,浙江导致应用程序中的常量值不一致。
2.在.m文件中使用static const 来定义 “只在编译单元内可见的常量(不想暴露给别的引用类文件的全局变量)”由于此类常量不会再全局符号表中,所以无须为期名称加前缀。(只在本文件中显示,即使文件被别的文件引用了,也不会暴露出去)。
static const NSString * str = @"静态关键字,只在本文件中使用,不会被修改且不会暴露给引用者";
3.在希望自己的属性暴露出去的时候 使用extern 关键字 在.h文件中声明,并在.m文件中实现赋值,
这种常量要出现在全局符号表中,所以其名称应加以区分,通常用与之相关的类名做前缀
.h文件中
#import <UIKit/UIKit.h>
extern NSString *const kBaseVCNotifiStr;
//所有Controller的基类
@interface QFTBaseViewController : QMUICommonViewController
@end
-----------------------------------------------------------------------
.m文件中
#import "QFTBaseViewController.h"
NSString *const kBaseVCNotifiStr = @"希望暴露给引用者的信息";
@interface QFTBaseViewController ()
@property (nonatomic, strong) UIButton *navButton;
@end