gpt4 book ai didi

objective-c - 重复符号错误——全局常量

转载 作者:太空狗 更新时间:2023-10-30 03:18:38 25 4
gpt4 key购买 nike

在类头中,在接口(interface)声明之外,我声明了全局常量:

NSString * const gotFilePathNotification = @"gotFilePath";
NSString * const gotResultNotification = @"gotResultOfType";

gotResultNotification 仅在此类中使用(目前),但我在另一个类实现中引用了 gotFilePathNotificaion。为此,我导入了这个 header 。

当我尝试编译时,我在该 header 中收到关于 gotFilePathNotification 的重复符号链接(symbolic link)器错误。为什么会这样?

最佳答案

您在文件范围内的两个不同编译单元中有两个名称相同的标识符。这违反了 One Definition Rule .相反,您需要 -

  1. 在头文件中声明全局变量标记为具有外部链接。

    extern NSString * const gotFilePathNotification;
  2. 现在在一个源文件中提供定义。

    NSString * const gotFilePathNotification = @"gotFilePath";

现在,在需要使用这些变量的地方,请在源文件中包含 header 。

关于objective-c - 重复符号错误——全局常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10957152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com