2012-04-23 71 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;