【问题标题】:how to copy C++ enum into Objective C enum如何将 C++ 枚举复制到 Objective C 枚举中
【发布时间】:2026-01-14 23:45:02
【问题描述】:

我有一个具有以下枚举的 C++ 类。

typedef enum 
{
    UnknownType = 0,
    Array = 1,
    Block = 2,  
    Enumeration = 3,
}ParameterValueType_t;

我想将它复制到一个 Objective C 枚举中。我应该如何复制它

【问题讨论】:

  • 您可以将枚举存储在 C 文件中并在两种语言中使用,或者我认为另一个选项应该用于 Objective-C++(将文件命名为 .mm)
  • 这是一个有效的 Objective-C 枚举,因为 Objective-C 是 C 的超集,所以你可以直接复制粘贴。但也许这不是你要问的?

标签: c++ objective-c enums


【解决方案1】:

使用纯 C 来声明您的枚举并将其放在头文件中,例如MyEnums.h 文件。在您的 C++ 和 Objective-C 文件中包含此 MyEnums.h。两种语言都理解 C 中的枚举声明。

例如我的枚举.h

#ifndef PARAMETERVALUETYPE
#define PARAMETERVALUETYPE

typedef enum {
  UnknownType = 0,
  Array = 1,
  Block = 2,
  Enumeration = 3
} ParameterValueType_t;

#endif

C++ 文件 *.h/*cpp:

#include "MyEnums.h"

// ... C++ code

Objective-C 文件 *.m:

#import "MyEnums.h"

// ... Objective-C code

【讨论】: