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

cClass {
  enum eList { FIRST, SECOND };
}


...以及其他一些课程中的内容:

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


是否有使用直率的Objective-C语言功能或Cocoa中的一些诡计可以允许类似范围的enum使用的等效项?

最佳答案

好了,您可以使用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) {
  /* ... */
}

09-29 19:38