为什么我不能在目标c中切换枚举

时间:2012-04-23 12:10:01

标签: objective-c xcode enums switch-statement

我似乎无法弄清楚如何在自定义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#";
    ...
  } 
}

1 个答案:

答案 0 :(得分:15)

枚举有文字值(基本上是整数),而不是对象指针。因此它应该是:

@property(nonatomic) Tones tone;