您的位置:首页 > 移动开发 > Objective-C

Objective-C 枚举类型和字符串互转方案

2015-07-08 18:30 531 查看
枚举类型的使用优势没啥好说的。但经常需要将它与字串进行转换方便显示或其它需求。
在常见的方案中,多是先声明,然后在实现文件里创建一个映射表。这样带来的问题就是要分两个文件来管理,带来管理不方便不好。使用前还在确保映射表已经初始化。显然使用时还是有些许难受。
如果全部改用宏来实现则会好管理很多,而且对于映射表可以采用惰性初始化原则,即只有访问到时才创建。

enum DPodRecordType{

DPodRecordTypeA = 0,

DPodRecordTypeCNAME,

DPodRecordTypeMX,

DPodRecordTypeTXT,

DPodRecordTypeNS,

DPodRecordTypeAAAA,

DPodRecordTypeSRV,

DPodRecordTypeURL

};

typedef enum DPodRecordType DPodRecordType;

const NSArray *___DPodRecordType;

// 创建初始化函数。等于用宏创建一个getter函数

#define cDPodRecordTypeGet (___DPodRecordType == nil ? ___DPodRecordType = [[NSArray alloc] initWithObjects:\

@"A",\

@"CNAME",\

@"MX",\

@"TXT",\

@"NS",\

@"AAAA",\

@"SRV",\

@"URL", nil] : ___DPodRecordType)

// 枚举 to 字串

#define cDPodRecordTypeString(type) ([cDPodRecordTypeGet objectAtIndex:type])

// 字串 to 枚举

#define cDPodRecordTypeEnum(string) ([cDPodRecordTypeGet indexOfObject:string])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: