可能重复:
目标C中的常量
我正在设计一个控制器,我需要一些常量(本地,只为那个控制器).看一下Apple提供的一些示例代码,我可以看到以下几行:
#import "Constants.h"
#define kTextFieldWidth 260.0
static NSString *kSectionTitleKey = @"sectionTitleKey";
static NSString *kSourceKey = @"sourceKey";
static NSString *kViewKey = @"viewKey";
const NSInteger kViewTag = 1;
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释它们之间的区别是什么?我应该使用哪种款式?它们是否依赖于您分配给它们的对象/值的类型?含义用途:static NSString *用于字符串,#define浮点数和NSInteger整数?你如何做出选择?
#define关键字是一个编译时指令,它使define'd值直接注入到代码中.它在整个程序和所有链接库中是全球性的.因此,您可以根据您仅为控制器创建常量的愿望将其从列表中删除.
静态和const之间的主要区别是,静态变量初始化后可以更改,常量的人不能.如果您希望能够在初始化后修改变量,那么您应该使用static关键字.
希望有所帮助.