模拟java enum objective-c

时间:2010-08-07 16:35:38

标签: objective-c enums

在java中,枚举可以像这样声明

enum MyEnum {
  ONE("descr for one"),
  TWO("descr for two");

  private String descr;

  MyEnum(String descr) {
    this.descr=descr;
  }

  public String getDescr() {return this.descr;}
}

因此我们总是可以调用myEnumInstance.getDescr()来获取枚举描述。当然可以在构造函数中添加几个变量并创建其相应的访问器。 objective-c中是否有类似内容?

感谢

1 个答案:

答案 0 :(得分:5)

没有。不幸的是,ObjectiveC没有类似内容。

您可以将Helper Class映射枚举到NSString *尽管......

这样的事情:

typedef enum {
   kONE,
   kTWO
} MyEnum;

然后是某个方法/消息:

+ (NSString*) getDescriptionFor:(MyEnum)e
{
    switch(e) {
        case kONE:
             return @"descr for one";
        case kTWO:
             return @"descr for two";
        default:
             break;
    }
    return @"";
 }