2012-04-23 65 views
2

我似乎无法弄清楚如何在自定义typedef枚举中使用switch语句。 Xcode告诉这个错误:语句要求表达整型(MyEnum *)是无效的。为什么我不能在目标c中切换枚举

,这是我的枚举声明在@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#"; 
    ... 
    } 
} 
+5

你正在做你的指针开关... – Nyx0uf 2012-04-23 12:12:34

+1

不要声明'音* tone'它应该是'音tone' - 没有星号它不是一个指针。 – 2012-04-23 12:12:59

回答

15

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

@property(nonatomic) Tones tone;