typedef enum {
red = 10,
blue = 21,
white = 32
} colors;
#define ENUMvalue2str(value) @(#value)
我使用ENUMvalue2str(white)
获取@"white"
,
现在,我想从white
获取@"white"
。
不使用NSArray,怎么做?
答案 0 :(得分:0)
enum
来自纯C.没有关于标签字符串的运行时信息。因此,无法将NSString
的实例转换为枚举标签的值。唯一的方法是进行级联。
这是一个原因,为什么我不使用C枚举,如果可能的话。我只是为标签定义字符串,并将字符串本身作为参数传递,如果枚举值只是一个标记,一个选项。如果我需要值的组合(也就是位集),我将NSSet
的实例与字符串一起使用。
如果您对枚举的特定值感兴趣(而不是简单地使用0,1,2 ......),则可以使用词典中对您的Q的评论中的链接中所述的词典。