typedef enum {
red = 10,
blue = 21,
white = 32
} colors;
#define ENUMvalue2str(value) @(#value)
我使用了ENUMvalue2str(white)
get @"white"
,现在,我想从@"white"
获取white
。不使用NSArray,该怎么做?
发布于 2017-06-02 21:46:33
enum
s来自纯C语言,没有关于标签字符串的运行时信息。因此,不可能将NSString
的实例转换为枚举标签的值。要做到这一点,唯一的方法是使用if级联。
这是我为什么不使用C枚举的原因之一,如果可能的话。我只是为标签定义字符串,并将字符串本身作为参数传递,如果枚举值只是一个标记,则是一个选项。如果我需要值的组合(也称为位集),我会使用带有字符串的NSSet
实例。
如果您对枚举的特定值感兴趣(而不是只有0,1,2,…),您可以使用您的Q的评论中的链接中解释的字典。
https://stackoverflow.com/questions/44323814
复制相似问题