ENUM 枚举的使用

为什么要写这个知识点?
这个知识点很简单,网上百度几分钟就能学会,我也是很早之前就知道并且会使用,但在项目开发中,时常在需要运用到这个的时候,总会忘记使用它!
枚举的运用的地方?
个人理解:当一个属性有多种类型值的时候。例如:商品购买状态: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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值