为什么我不能在Objective-C中切换枚举?

问题描述 投票:3回答:1

我似乎不知道应该如何在我的自定义 typedef enum 中使用 switch 语句。Xcode告诉我这个错误。

语句要求表达式为整数类型(MyEnum *)无效。

这是我的枚举,在我的头中的@接口上声明的。

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#";
    ...
  } 
}
objective-c xcode enums switch-statement
1个回答
16
投票

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

@property(nonatomic) Tones tone;
© www.soinside.com 2019 - 2024. All rights reserved.