NSString到枚举值(Objc)

时间:2017-06-02 08:05:11

标签: objective-c enums nsstring

typedef enum {
    red = 10,
    blue = 21,
    white = 32
} colors;
#define ENUMvalue2str(value)   @(#value)

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

1 个答案:

答案 0 :(得分:0)

enum来自纯C.没有关于标签字符串的运行时信息。因此,无法将NSString的实例转换为枚举标签的值。唯一的方法是进行级联。

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

如果您对枚举的特定值感兴趣(而不是简单地使用0,1,2 ......),则可以使用词典中对您的Q的评论中的链接中所述的词典。