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

转载 2015年07月08日 18:30:16

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

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

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

 

 

复制代码
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])

《Effective Objective-C 2.0》3、枚举类型表示状态、选项

第五条:使用枚举类型表示状态和选项,可以使代码更加清晰,可读性更好。 枚举类型使用关键字enum定义,通常与typedef相结合,定义一组状态或选项: typedef enum CustomState...

使用_ObjectiveCBridgeable协议实现Objective-C类与Swift结构体的无缝互转

我们知道在Swift中,可以在NSArray与Array之间做无缝的转换,如下所示: let mobile = ["iPhone", "Nokia", "小米Note"] let mobile1...
  • Vic__li
  • Vic__li
  • 2015年11月25日 16:04
  • 378

使用_ObjectiveCBridgeable协议实现Objective-C类与Swift结构体的无缝互转

原文链接 我们知道在Swift中,可以在NSArray与Array之间做无缝的转换,如下所示: 1 2 3 4 5 6 7 8 9 10 11 let ...
  • khlljm
  • khlljm
  • 2016年06月13日 16:07
  • 409

Objective-C 的基本数据类型、数字、字符串和集合等介绍 (retaincount 释放问题)

http://blog.sina.com.cn/s/blog_662b417f0100s50n.html 基本类型 Objective-C中的基本类型和C语言中的基本类型一样.主要有:...

objective-c 中数据类型之二 字符串(NSString)

// 1. 声明一个NSString对象,注意对象前要加‘*’; NSString *string1; // 赋值方式1,初始化赋值; ...

iOS开发系列之Objective-C基础:NSString字符串类型(二)

iOS开发系列之Objective-C基础:NSString字符串类型(二)

【转】Objective-C截取字符串时emoji表情的处理

转自:http://blog.csdn.net/liu1347508335/article/details/52484507我们在开发中会经常遇到限制字符串长度的情况,如输入框限制输入字数,我们会经常...

Objective-C中的SEL、IMP和Class类型(转)

这个真的很实用,也很好用。 1、SEL类型   例子:   SEL say;       SEL skin;   Objective-C 在编译的时候, 会根据方法的名字(包括参数序列),生...

objective-c基本数据类型【转】

来自:http://blog.csdn.net/rhljiayou/article/details/7397889 1、Object-c提供基本数据类型:int、float 、double 、c...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Objective-C 枚举类型和字符串互转方案
举报原因:
原因补充:

(最多只允许输入30个字)