2

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

cClass {
  enum eList { FIRST, SECOND };
}

...这在其他一些课程中:

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

是否有使用直接的 Objective-C 语言功能或 Cocoa 中的一些技巧的等价物来允许类似范围 enum的 s?

4

1 回答 1

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) {
  /* ... */
}
于 2012-10-19T12:29:39.933 回答