typedef 在单独的头文件中

typedef in separate header file

我有一个包含以下代码的 defines.h 文件

    typedef enum AnswerType : NSUInteger {
    kAnswerTypeNotResponded = 0,
    kAnswerTypeYes = 1,
    kAnswerTypeNo = 2,
    kAnswerTypeComplain = 3
} AnswerType;

当我在其他几个文件中导入此文件时 - 我收到错误

ld: 13 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我需要 AnswerType 在很多地方都可见。实现它的最佳变体是什么?

你的枚举看起来不错。不过,我想应该还有另一个问题。

出现此问题的主要原因之一是您可能在构建阶段多次列出一个文件。因此,您需要确保 文件仅在构建阶段中列出一次

以下是您可以遵循的步骤:

  1. 检查目标设置中的构建阶段。
  2. 检查是否有任何文件存在两次。
  3. 如果文件存在两次删除一个。如果不删除最下面的文件就是最新的
  4. 再次构建。

Original source of answer

只需按照以下步骤操作即可解决您的问题。

1.转到构建设置

2。搜索无公共块和

3。设置为否

4.重新构建

5.您不会再收到此错误。