模拟java enum objective-c

Leo*_*rdo 1 enums objective-c

在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;}
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Pab*_*ruz 5

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

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

像这样的东西:

typedef enum {
   kONE,
   kTWO
} MyEnum;
Run Code Online (Sandbox Code Playgroud)

然后是一个类方法/消息:

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