将NSStrings转换为枚举的最佳方法

时间:2011-11-02 19:22:25

标签: objective-c ios enums nsstring

假设我已经定义了这个枚举(来自Apple的UIKit框架):

typedef enum {
    UITextAutocorrectionTypeDefault,
    UITextAutocorrectionTypeNo,
    UITextAutocorrectionTypeYes,
} UITextAutocorrectionType;

我有一个带有“UITextAutocorrectionTypeDefault”值的简单字符串。在我的例子中,这个字符串来自一个JSON对象,但没关系。

将字符串转换为正确的枚举值的最佳方法是什么,以便我可以在类中设置属性?我知道Obj-C不能直接转换值(就像你可以用Java或C#做的那样),在我的例子中我有很多枚举,以及可能在以后创建的枚举。除了必须手动创建映射字典外,是否有任何自动或半自动方式?

1 个答案:

答案 0 :(得分:2)

C(阅读Objective-C)中,除了手动映射值之外,无法执行此操作。枚举只是定义了在运行时无法转换为字符串或从字符串转换的常量值,就像在C#Java中将它们视为对象一样。

在编译时你可以stringify这些值。