枚举类型的使用优势没啥好说的。但经常需要将它与字串进行转换方便显示或其它需求。
在常见的方案中,多是先声明,然后在实现文件里创建一个映射表。这样带来的问题就是要分两个文件来管理,带来管理不方便不好。使用前还在确保映射表已经初始化。显然使用时还是有些许难受。
如果全部改用宏来实现则会好管理很多,而且对于映射表可以采用惰性初始化原则,即只有访问到时才创建。
11 | typedef enum DPodRecordType DPodRecordType; |
12 | const NSArray *___DPodRecordType; |
14 | #define cDPodRecordTypeGet (___DPodRecordType == nil ? ___DPodRecordType = [[NSArray alloc] initWithObjects:\ |
22 | @ "URL" , nil] : ___DPodRecordType) |
24 | #define cDPodRecordTypeString(type) ([cDPodRecordTypeGet objectAtIndex:type]) |
26 | #define cDPodRecordTypeEnum(string) ([cDPodRecordTypeGet indexOfObject:string]) |
缺点呢, 可能会导致最终编译的文件会大那么一点点吧.
.
.