Objective-C中的常量和"重复符号"链接器错误

App*_*Dev 12 linker const objective-c duplicates ios

我已经在一些不同的类中,在它们的.m文件中声明了一个具有相同名称的常量,这样:

@implementation MyViewController
const NSInteger numberOfItems = 6;
...
@end
Run Code Online (Sandbox Code Playgroud)

但是在尝试构建项目时出现"重复符号"错误.我发现了几个关于extern或全局常量这个问题的帖子,但我想要的只是声明一些常量属于他们的类,我该怎么做?

谢谢

Mic*_*chK 30

如果只想在一个.m文件中使用常量,则将其声明为static.例如:static NSString * const CONSTANT_STRING = @"Constant I am".

如果NSInteger您可以在每个.m文件中写入:

static const NSInteger my_const = 3;
Run Code Online (Sandbox Code Playgroud)

如果你想要全局变量(一个常量,每个文件中都有一个值可见),那么写入.h:

extern const NSInteger my_global_const;
Run Code Online (Sandbox Code Playgroud)

并在您的.m文件中,您可以添加

const NSInteger my_global_const = 5;
Run Code Online (Sandbox Code Playgroud)