2

C ++では、ヘッダーで次のことを行う場合があります。

cClass {
  enum eList { FIRST, SECOND };
}

...そしてこれは他のクラスでは:

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

ストレートのObjective-C言語機能を使用するか、Cocoaで同様のスコープ enumを持ついくつかのトリックを使用する同等の機能はありますか?

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 に答える