ENUM 枚举的使用
2018-02-27 14:07
288 查看
为什么要写这个知识点?
这个知识点很简单,网上百度几分钟就能学会,我也是很早之前就知道并且会使用,但在项目开发中,时常在需要运用到这个的时候,总会忘记使用它!
枚举的运用的地方?
个人理解:当一个属性有多种类型值的时候。例如:商品购买状态:1.未购买,2.购买中,3.购买成功,4.发货成功,5.收货成功。
举个例子,我们想要在开发中根据四季的变化做不同的操作,我们首先想到的可能会是定义一个int型变量,通过为该变量赋不同的值来表示四季(e.g. 1为春天,2为夏天,3为秋天,4为冬天).但是,对于阅读该份代码的人来讲,他们并不能在短时间内就明白数字1234所代表的具体含义.这个时候,选择使用枚举则可以应对该需求。
以”定义一个枚举名称为Test,拥有TestA、TestB等枚举成员的枚举类型”为例,定义方式如下
NS_ENUM使用示例
NS_OPTIONS使用示例
平时在实际开发中,使用NS_ENUM 类型的枚举比较多,使用NS_OPTIONS的枚举比较少,我说明一下两者的区别。
NS_ENUM :这种类型的枚举在使用中,一次只能使用一个枚举值。
NS_OPTIONS:这种类型的枚举一次可以使用多个枚举值,例如:TestA | TestB。在自定义label高度的时候见到这种类型比较多。
以后如果有遇到这种业务需求的情况,可以使用这种枚举方式。
本人GitHub地址:https://github.com/wenjing0628
这个知识点很简单,网上百度几分钟就能学会,我也是很早之前就知道并且会使用,但在项目开发中,时常在需要运用到这个的时候,总会忘记使用它!
枚举的运用的地方?
个人理解:当一个属性有多种类型值的时候。例如:商品购买状态:1.未购买,2.购买中,3.购买成功,4.发货成功,5.收货成功。
举个例子,我们想要在开发中根据四季的变化做不同的操作,我们首先想到的可能会是定义一个int型变量,通过为该变量赋不同的值来表示四季(e.g. 1为春天,2为夏天,3为秋天,4为冬天).但是,对于阅读该份代码的人来讲,他们并不能在短时间内就明白数字1234所代表的具体含义.这个时候,选择使用枚举则可以应对该需求。
C语言中的枚举
enum 枚举名称 { 标识符 = 整型常量, 标识符 = 整型常量, 标识符 = 整型常量, 标识符 = 整型常量 };
以”定义一个枚举名称为Test,拥有TestA、TestB等枚举成员的枚举类型”为例,定义方式如下
enum Test { TestA = 0, TestB = 1, TestC = 2, TestD = 3 };
OC语言中的枚举
在Objective-C语言中,Apple在iOS6中引入了两个宏来重新定义枚举类型(即:NS_ENUM与NS_OPTIONS),这两者在本质上并没有差别,都是用于定义枚举类型,但是在使用中NS_ENUM多用于一般枚举,而NS_OPTIONS则多用于带有移位运算的枚举NS_ENUM使用示例
typedef NS_ENUM(NSInteger, Test) { TestA = 0, TestB, TestC, TestD };
NS_OPTIONS使用示例
typedef NS_OPTIONS(NSUInteger, Test) { TestA = 1 << 0, TestB = 1 << 1, TestC = 1 << 2, TestD = 1 << 3 };
平时在实际开发中,使用NS_ENUM 类型的枚举比较多,使用NS_OPTIONS的枚举比较少,我说明一下两者的区别。
NS_ENUM :这种类型的枚举在使用中,一次只能使用一个枚举值。
NS_OPTIONS:这种类型的枚举一次可以使用多个枚举值,例如:TestA | TestB。在自定义label高度的时候见到这种类型比较多。
CGRect rect = [text boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width - 85 * WIDTH, 0) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont fontWithName:@"ArialUnicodeMS" size:17.1]} context:nil];
以后如果有遇到这种业务需求的情况,可以使用这种枚举方式。
本人GitHub地址:https://github.com/wenjing0628
相关文章推荐
- Enum枚举的原理及各种使用方法
- Java中的Enum(枚举)的使用与分析
- enum 枚举的使用
- Enum枚举 简单的使用
- java enum(枚举)使用详解
- Java 枚举enum 使用详解
- Java enum(枚举)使用方法详解
- Android是否推荐使用枚举(enum)?使用枚举的利弊以及枚举倒底占多少内存?
- Java枚举(enum)的使用
- java中枚举(Enum)使用
- [.Net码农].net 枚举(Enum)使用总结
- 在映射表中使用enum枚举
- java enum(枚举)使用详解 + 总结
- java enum(枚举)使用详解 + 总结
- Java enum(枚举)使用详解之二
- 6. C# -- 枚举类型,typeof(),Enum.Parse()使用
- 教你使用Android自带注解@IntDef代替Enum (枚举)
- enum枚举的使用总结 在android中的应用 持续更新
- 2.枚举(Enum)使用总结
- java enum(枚举)使用详解 + 总结