如何正确定义常量
如何正确定义常量
这个问题已经有答案了:
可能是重复的问题:
我正在设计一个控制器,我需要一些在其中使用的常量(仅在该控制器内部使用)。看了一些由Apple提供的示例代码,我可以看到这些行:
#import "Constants.h" #define kTextFieldWidth 260.0 static NSString *kSectionTitleKey = @"sectionTitleKey"; static NSString *kSourceKey = @"sourceKey"; static NSString *kViewKey = @"viewKey"; const NSInteger kViewTag = 1;
谁能解释一下它们之间的区别是什么?我应该使用哪种样式?它们是否取决于您分配给它们的对象/值的类型?这意味着使用:static NSString *
用于字符串,#define
用于浮点数和NSInteger
用于整数。您如何做出选择?
admin 更改状态以发布 2023年5月23日
正如Scott和benzado指出的那样,这是定义常量值的最佳方式。但是对于定义而言,使用定义比较难以调试,因为在调试器中通常无法轻松地看到扩展值。仅在意图将变量全局公开时,您才需要在类的头文件中添加外部声明。并且要记住将const
声明放在指针(*)之后,否则在大多数情况下,您将获得指针中丢弃修饰符的警告。