• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原文转自  http://www.rijiyuelei.me/2012/09/enum-and-string-conversion-in-objective-c/

 

枚举类型的使用优势没啥好说的。但经常需要将它与字串进行转换方便显示或其它需求。

在常见的方案中,多是先声明,然后在实现文件里创建一个映射表。这样带来的问题就是要分两个文件来管理,带来管理不方便不好。使用前还在确保映射表已经初始化。显然使用时还是有些许难受。

如果全部改用宏来实现则会好管理很多,而且对于映射表可以采用惰性初始化原则,即只有访问到时才创建。

 

 

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])

 

缺点呢, 可能会导致最终编译的文件会大那么一点点吧.

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
json转Objective-CModel代码生成器发布时间:2022-07-12
下一篇:
Objective-c中常见的字符串处理函数发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap