我想在.h文件中定义一个NSString常量,并在.m文件中进行定义,正确的方式是在.h文件中使用
extern NSString * const variableName;
,然后在.m文件中使用 NSString * const variableName = @"variableValue";
。根据C语言的教程,我们可以看到const
应该放置于变量定义之前。我的问题是:为什么不在.h文件中声明extern const NSString * variableName;
,然后在.m文件中使用const NSString * variableName = @"variableValue";
呢?这样做会导致编译器警告,指出“传递给方法methodName的第1个参数从指针目标类型中丢弃了限定符”,这是什么意思?
const int
和int const
是完全相同的。NSString
已经是不可变的,所以只需要将const
应用于指针(由于 Objective-C 对象总是通过指针访问,这可能有点令人困惑)。 - Wevahconst int *
和int const *
是一样的,但是int * const
是不同的。 - user102008