iOS中的枚举:enum, NS_ENUM, NS_OPTIONS的使用区别
2024-08-26 15:34:10
1.enum
可以声明一般类型和位掩码(bitmasked)类型
例如:
enum Test{// 一般枚举
TestA,
TestB,
TestC,
};
enum{// 匿名枚举
TestA,
TestB,
TestC,
};
typedef enum _Test
{ // 设置别名
TestA,
TestB,
TestC
} Test;
2.NS_ENUM
声明一般类型, NS_OPTIONS
声明掩码(bitmasked)类型
typedef NS_ENUM(NSInteger, Test)
{
TestA,
TestB,
TestC
};
typedef NS_OPTIONS(NSUInteger, Test) {// <<标识左位移,(1<<1,意思是把左边的1转换成二进制后向左移动1位)
TestA = 1 << 0,
TestB = 1 << 1,
TestC = 1 << 2,
TestD = 1 << 3
};
3.那么问题又来了, 直接用enum
不就可以了? 答案不是这样的, 苹果建议我们在OC中使用NS_ENUM
与NS_OPTIONS
, 为什么呢? 因为他们除了推断出不同类型的枚举,再就是当编译Objective-C++
模式,它们产生的代码是不同的, 就是因为不同所以混编的时候使用enum
会报错!
最新文章
- linux 基础知识
- sqlite里执行查询提示未启用约束、主键冲突之——数据竟能超字段长度存储
- iOS-H5学习篇-01
- 100114B
- js禁止网页使用右键
- 科学技术法转成BigDemcial
- 牛课--C/C++
- Xcode7如何添加pch文件
- jq版本更新后无live函数的处理.
- asp.net实现UNIX 时间戳
- asp.net 下载文件(图片、word、excel等)
- Swift - 浮点数转换成整数(四舍五入与直接截断)
- 在echarts3中使用字符云
- 415 DOM 查找列表框、下拉菜单控件、对表格元素/表单控件进行增删改操作、创建元素并且复制节点与删除、 对表格操作、通用性和标准的事件监听方法(点击后弹窗效果以及去掉效果)
- 【git】将本地项目上传到远程仓库
- 软工实践作业2:个人项目实战之Sudoku
- SQL中查询前几条或者中间某几行数据limit
- 题解——洛谷P3812【模板】线性基
- Spring boot Mybatis 整合
- [SQL Server]数据库的恢复