模拟java枚举objective-c

发布于 2024-09-13 20:21:42 字数 353 浏览 0 评论 0原文

在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 中有类似的东西吗?

谢谢

in java an enum can be declared like this

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;}
}

therefore we can always call myEnumInstance.getDescr() for getting enum description. It is possible of course to add several variable in constructor and create its corresponding accessor.
Is there anything similiar in objective-c ?

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最佳男配角 2024-09-20 20:21:42

不。不幸的是,ObjectiveC 中没有类似的东西。

不过,您可以有一个帮助类将枚举映射到 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 @"";
 }

No. Unfortunately for you, there is nothing similar in ObjectiveC.

You can have a Helper Class mapping enums to NSString* though...

Something like this:

typedef enum {
   kONE,
   kTWO
} MyEnum;

And then a class method/message somewhere:

+ (NSString*) getDescriptionFor:(MyEnum)e
{
    switch(e) {
        case kONE:
             return @"descr for one";
        case kTWO:
             return @"descr for two";
        default:
             break;
    }
    return @"";
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文