iOS enum 定义与使用
来源:互联网 发布:it外包服务市场 编辑:程序博客网 时间:2024/05/14 19:29
typedef enum {
//以下是枚举成员 TestA = 0,
}Test;//枚举名称
亦可以如下定义(推荐:结构比较清晰):
typedef NS_ENUM(NSInteger, Test1) {
//以下是枚举成员
};
枚举的定义还支持位运算的方式定义,如下: 等于号后面必须等于1
typedef NS_ENUM(NSInteger, Test) {
};
什么时候要用到这种方式呢? 那就是一个枚举变量可能要代表多个枚举值的时候.其实给一个枚举变量赋予多个枚举值的时候,原理只是把各个枚举值加起来罢了.当加起来以后,就获取了一个新的值,那么为了保证这个值的唯一性,这个时候就体现了位运算的重要作用. 位运算可以确保枚举值组合的唯一性.因为位运算的计算方式是将二进制转换成十进制,也就是说,枚举值里面存取的是 计算后的十进制值. 打个比方:通过上面的位运算方式设定好枚举以后,打印出来的枚举值分别是: 1 2 4 8 16这5个数字,无论你如何组合在一起,也不会产生两个同样的数字.
多枚举值 赋值方式如下:
Test tes = (TestA|TestB);
判断枚举变量是否包含某个固定的枚举值,使用前需要确保枚举值以及各个组合的唯一性:
NSLog(@"%d %d %d %d %d",TestA,TestB,TestC,TestD,TestE);
Test tes = (TestA|TestB); NSLog(@"%d",tes);
NSLog(@"%d",(tes & TestA));
if ((tes & TestA)) { NSLog(@"有"); }
else { NSLog(@"没有"); } NSLog(@"%d",(tes & TestB));
if ((tes & TestA)) { NSLog(@"有"); }
else { NSLog(@"没有"); }
NSLog(@"%d",(tes & TestC));
if ((tes & TestC)) { NSLog(@"有"); }
else { NSLog(@"没有"); }
如果 没有包含,将返回0, 0表示false NO 则进入else也可以随时为枚举变量累加某个值,但是要自己控制不要添加已经加入过的枚举值, 枚举变量的值不会有变动,但这样将会误导阅读代码的人
有累加,自然有累减了,如果累减不存在的枚举值, 那么本次累减的枚举值,会自动累加上去.
- iOS enum 定义与使用
- iOS enum 定义与使用
- C#枚举enum定义使用
- iOS:枚举enum的使用
- Java enum类的定义即使用
- C++之enum枚举量声明、定义、使用与枚举类详解
- enum 定义
- iOS宏定义的使用与规范
- iOS 宏定义的使用与规范
- iOS宏定义的使用与规范
- IOS开发之----enum与typedef enum的用法
- IOS开发之----enum与typedef enum的用法
- IOS开发之----enum与typedef enum的用法
- enum和enum typedef 在IOS中的使用
- enum和enum typedef 在IOS中的使用
- enum和typedef enum 在IOS中的使用
- enum和enum typedef 在IOS中的使用
- iOS:枚举enum,NS_ENUM,NS_OPTIONS 定义和 位运算应用
- 使用openssl进行证书格式转换
- HDU Game of Connections 解题报告
- cocos2d-x学习笔记-纹理优化
- 在android中policymanager
- ASCII 、GB2312、GBK、GB18030、Unicode、UTF-8字符集编码详解
- iOS enum 定义与使用
- _ASP.NET MVC 异步调用
- 用Sitemesh控制页面布局
- Collections
- 【小蒙淘金】3.15金评-黄金是否有望再给抄底机会?
- 分享8年开发经验,浅谈程序员职业规划
- 强大的grep用法详解:grep与正则表达式
- JAVA获取各种各样的时间、时间对比 方法汇总
- 百度地图使用案例