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_ENUMNS_OPTIONS, 为什么呢? 因为他们除了推断出不同类型的枚举,再就是当编译Objective-C++模式,它们产生的代码是不同的, 就是因为不同所以混编的时候使用enum会报错!

最新文章

  1. linux 基础知识
  2. sqlite里执行查询提示未启用约束、主键冲突之——数据竟能超字段长度存储
  3. iOS-H5学习篇-01
  4. 100114B
  5. js禁止网页使用右键
  6. 科学技术法转成BigDemcial
  7. 牛课--C/C++
  8. Xcode7如何添加pch文件
  9. jq版本更新后无live函数的处理.
  10. asp.net实现UNIX 时间戳
  11. asp.net 下载文件(图片、word、excel等)
  12. Swift - 浮点数转换成整数(四舍五入与直接截断)
  13. 在echarts3中使用字符云
  14. 415 DOM 查找列表框、下拉菜单控件、对表格元素/表单控件进行增删改操作、创建元素并且复制节点与删除、 对表格操作、通用性和标准的事件监听方法(点击后弹窗效果以及去掉效果)
  15. 【git】将本地项目上传到远程仓库
  16. 软工实践作业2:个人项目实战之Sudoku
  17. SQL中查询前几条或者中间某几行数据limit
  18. 题解——洛谷P3812【模板】线性基
  19. Spring boot Mybatis 整合
  20. [SQL Server]数据库的恢复

热门文章

  1. java实现麦克风自动录音
  2. jsTree插件简介(三)
  3. HDU_1506_Largest Rectangle in a Histogram_dp
  4. python队列的实现
  5. react-router 4.x 路由按需加载
  6. vivo手机执行input命令提示killed
  7. UVA - 12325 Zombie&#39;s Treasure Chest (分类搜索)
  8. python3.x Day3 集合
  9. linux od-输出文件的八进制、十六进制等格式编码的字节
  10. Python 开发面试题