枚举的宏定义

一、简介  
NS_ENUM和NS_OPTIONS宏提供了一种简明、简单的方法来定义基于C语言的枚举和选项。 这些宏提高了Xcode中的代码完成性,并明确指定了枚举和选项的类型和大小。 此外,此语法以一种方式来声明枚举,该方式由旧编译器正确地计算,并且由更新的编译器来解释底层类型信息。 使用NS_ENUM、NS_OPTIONS宏定义枚举,有助于定义枚举的名称和类型; 
如果需要以按位或操作来组合的枚举都应该使用NS_OPTIONS宏;若枚举不需要互相组合,可以使用NS_ENUM来定义 
二、例子 
(1)如果使用枚举定义UITableViewCellStyle,可以使用NS_ENUM宏来改写 
enum{ 
UITableViewCellStyleDefault, 
UITableViewCellStyleValue1, 
UITableViewCellStyleValue2, 
UITableViewCellStyleSubtitle, 
}; 
typedef NSInteger UITableViewCellStyle; 
改写版 
typedef NS_ENUM(NSInteger,UITableViewCellStyle){

UITableViewCellStyleDefault,
UITableViewCellStyleValue1,
UITableViewCellStyleValue2,
UITableViewCellStyleSubtitle,

}

(2)使用枚举定义的的一组位掩码。可以使用NS_OPTIONS来改写 
enum{

UIViewAutoresizingNone                         =0,
UIViewAutoresizingFlexibleLeftMargin =1<<0,
UIViewAutoresizingFlexibleWidth =1<<1,
UIViewAutoresizingFlexibleRightMargin =1<<2,
……


使用NS_OPTIONS来改写 
typedef NS_OPTIONS(NSInteger,UIViewAutoresizing){

UIViewAutoresizingNone                         =0,
UIViewAutoresizingFlexibleLeftMargin =1<<0,
UIViewAutoresizingFlexibleWidth =1<<1,
UIViewAutoresizingFlexibleRightMargin =1<<2,
……

}

最新文章

  1. links and softwares
  2. IOS开发基础知识--碎片17
  3. css3弹性盒子温习
  4. cnblogs开篇留念
  5. 安装了SQL2005再安装SQL 2008R2,提示此计算机上安装了 Microsoft Visual Studio 2008 的早期版本和检查是否安装了 SQL Server 2005 Express 工具的解决方案
  6. sql语句原则
  7. 学习笔记 --- 最大流Dinic算法
  8. 【SQL】导出表数据到Excel中
  9. UDP模块(黑胶体)
  10. 动态规划(树形DP):HDU 5834 Magic boy Bi Luo with his excited tree
  11. CentOS添加swap分区
  12. Vijos P1881 闪烁的星星 (加强自己多一点。。)
  13. action 耦合方式
  14. 让php Session 存入 redis 配置方法
  15. hdu_3336: Count the string(KMP dp)
  16. Hadoop(十六)之使用Combiner优化MapReduce
  17. CentOS7中使用iptables
  18. windows蓝屏代码
  19. JAVA中局部变量 和 成员变量有哪些区别
  20. Appium基础(三)对象抓取

热门文章

  1. 转 Monitoring Restore/Recovery Progress
  2. google风格
  3. @font-face引用指定字体库(一)
  4. mysql 问题总结[转]
  5. Docker原理(开发技术分享转发)
  6. Spark 概念学习系列之从物理执行的角度透视spark Job(十七)
  7. Unity中Shader和AssetBundle结合使用的注意事项
  8. 文档碎片DocumentFragment
  9. hadoop 天气案例
  10. hibernate表关系