首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >枚举值的NSString (Objc)

枚举值的NSString (Objc)
EN

Stack Overflow用户
提问于 2017-06-02 16:05:11
回答 1查看 736关注 0票数 0
代码语言:javascript
复制
typedef enum {
    red = 10,
    blue = 21,
    white = 32
} colors;
#define ENUMvalue2str(value)   @(#value)

我使用了ENUMvalue2str(white) get @"white",现在,我想从@"white"获取white。不使用NSArray,该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-02 21:46:33

enums来自纯C语言,没有关于标签字符串的运行时信息。因此,不可能将NSString的实例转换为枚举标签的值。要做到这一点,唯一的方法是使用if级联。

这是我为什么不使用C枚举的原因之一,如果可能的话。我只是为标签定义字符串,并将字符串本身作为参数传递,如果枚举值只是一个标记,则是一个选项。如果我需要值的组合(也称为位集),我会使用带有字符串的NSSet实例。

如果您对枚举的特定值感兴趣(而不是只有0,1,2,…),您可以使用您的Q的评论中的链接中解释的字典。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44323814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档