我将对象映射NSString
到NSNumber
对象,NSDictionary
以便enum
从 JSON 字符串中设置类型,如下所示:
typedef enum
{
XXEnumTypeA,
XXEnumTypeB,
XXEnumTypeC,
} XXEnumType;
...
@property (nonatomic, assign) XXEnumType enumType;
...
self.mapNSStringToEnumType =
@{
@"enumTypeA" : @(XXEnumTypeA),
@"enumTypeB" : @(XXEnumTypeB),
@"enumTypeC" : @(XXEnumTypeC),
};
...
self.enumType = [self.mapNSStringToEnumType[stringFromJSON] integerValue];
现在我想换一种方式,将enum
值转换为字符串。我不想使用反向映射存储另一个字典,我使用的解决方案涉及通过映射字典进行线性搜索以查找值然后返回键。
在实践中,我的线性方法很好,性能和记忆都不是问题,但是从学术的角度来看,我很好奇是否有另一种我不知道的更有效的方法,或者可能是另一种类型的结构双向映射(确保所有值也是唯一的)?