4

カスタムtypedef列挙型でswitchステートメントをどのように使用すべきか理解できないようです。Xcodeはこのエラーを通知します:

ステートメントは整数型の式を必要とします(MyEnum *)は無効です。

これは、ヘッダーの@interfaceで宣言された列挙型です。

typedef enum {
  A, B, C, D, E, F, G,
  Ab, Bb, Db, Eb, Gb,
  CSharp, DSharp, FSharp, GSharp
} Tones;

これは私の財産です: @property(nonatomic) Tones *tone;

これは、列挙型の文字列値を取得するための私の関数です

- (NSString *)stringValue {

  switch (self.tone) {
    case GSharp:
      return @"G#";
    ...
  } 
}
4

1 に答える 1

17

列挙型には、オブジェクトポインタではなく、リテラル値(基本的には整数という名前)があります。したがって、次のようになります。

@property(nonatomic) Tones tone;
于 2012-04-23T12:12:31.303 に答える