How to properly define constants
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Constants in Objective C
号
我正在设计一个控制器,我需要它里面的一些常量(本地的,只是针对那个控制器)。查看苹果提供的一些示例代码,我可以看到以下几行:
1 2 3 4 5 6 7 8 9 | #import"Constants.h" #define kTextFieldWidth 260.0 static NSString *kSectionTitleKey = @"sectionTitleKey"; static NSString *kSourceKey = @"sourceKey"; static NSString *kViewKey = @"viewKey"; const NSInteger kViewTag = 1; |
有人能给我解释一下他们之间的区别吗?我应该使用哪种样式?它们是否取决于您分配给它们的对象/值的类型?表示用法:
define关键字是一个编译时指令,它使define'd值直接注入到代码中。它在整个程序和所有链接库中都是全局的。因此,您可以根据自己只为控制器创建一个常量的愿望将其从列表中删除。
静态变量和常量的主要区别在于静态变量在初始化后可以更改,而常量变量不能更改。如果您想在初始化后修改变量,那么应该使用static关键字。
希望有帮助。
正如Scott和Benzado指出的,这是定义常量值的最佳方法。但是,对于定义go,使用defines进行调试比较困难,因为在调试器中通常不容易看到扩展值。如果打算全局公开变量,则只需要向类的头文件添加一个外部声明。接下来要记住的是将