ios - Objective-C 中的常量和 "duplicate symbol"链接器错误

标签 ios objective-c linker duplicates constants

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

@implementation MyViewController
const NSInteger numberOfItems = 6;
...
@end

但是在尝试构建项目时出现“重复符号”错误。我发现有几篇文章处理这个关于外部常量或全局常量的问题,但我想要的只是声明一些对他们的类私有(private)的常量,我该怎么做?

谢谢

最佳答案

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

NSInteger 的情况下,您可以在每个 .m 文件中写入:

static const NSInteger my_const = 3;

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

extern const NSInteger my_global_const;

在你的.m文件中你可以添加

const NSInteger my_global_const = 5;

关于ios - Objective-C 中的常量和 "duplicate symbol"链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17145223/

相关文章:

ios - 使用 AVCaptureSession 录制视频,添加 CIFilter 并保存到相册

c - 目标文件和可执行文件的反汇编差异

c++ - 链接错误 : Boost Library on Windows using MinGW

ios - CGImageCreateWithMaskingColors 不适用于 iOS7

windows - __declspec(dllimport) 的必要性

iphone - 使用类别子类化类时如何避免编译警告?

ios - 更改导航栏栏按钮中的按钮标识符

iphone - UItextView 阿拉伯文本右对齐

ios - UIViewControllerContext initalFrameForViewController & finalFrameForViewController 对所有值显示 0

ios - 具有自定义委托(delegate)或数据源的 View Controller 的状态保存