是否有相当于C ++的类范围枚举?

时间:2012-10-19 12:08:27

标签: objective-c cocoa

在C ++中,我可能会在标题中执行以下操作:

cClass {
  enum eList { FIRST, SECOND };
}

......还有其他一些课程:

cClass::eList ListValue = GetListValue();
if(ListValue == cClass::FIRST) {
  ...
}

是否有相同的使用直接的Objective-C语言功能或Cocoa中的一些技巧,允许类似的范围 enum

1 个答案:

答案 0 :(得分:3)

好吧,您可以使用C:

模拟部分内容

创建一个C枚举并输入:

enum MONEnumType : uint8_t {
  MONEnumType_Undefined = 0,
  MONEnumType_Red,
  MONEnumType_Green,
  MONEnumType_Blue
};

声明容器:

struct MONEnum {
  const enum MONEnumType Red, Green, Blue;
};

声明存储:

extern const struct MONEnum MONEnum;

定义存储:

const struct MONEnum MONEnum = {
  .Red = MONEnumType_Red,
  .Green = MONEnumType_Green,
  .Blue = MONEnumType_Blue
};

正在使用中:

enum MONEnumType ListValue = GetListValue();
if (ListValue == MONEnum.Red) {
  /* ... */
}