typedef在单独的头文件中

时间:2016-01-01 23:16:37

标签: objective-c typedef duplicate-symbol

我有一个带有以下代码的define.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。实现它的最佳变体是什么?

2 个答案:

答案 0 :(得分:1)

你的枚举看起来不错。但是,我猜应该有另一个问题。

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

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

  1. 检查目标设置中的构建阶段。
  2. 检查是否存在任何文件两次。
  3. 如果文件存在两次删除一个。如果没有删除底部最新的文件。
  4. 再次建造。
  5. Original source of answer

答案 1 :(得分:1)

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

<强> 1。转到构建设置

<强> 2。搜索无常用块和

第3。设置为否

<强> 4。再次构建

<强> 5。您不会再次收到此错误。