NS_ENUM vs. NS_OPTIONS】的更多相关文章

首先,NS_ENUM和NS_OPTIONS都是宏. Foundation框架中定义了一些辅助的宏,用这些宏来定义枚举类型时,也可以指定用于保存枚举值的底层数据类型.这些宏具有向后兼容能力,如果目标平台的编译器支持新标准,那就使用新式语法,否则改用旧式语法.这些宏是用#define预处理指令来定义的.NS_ENUM 和 NS_OPTIONS的定义如下: #if (__cplusplus && __cplusplus >= 201103L && (__has_extens…
OC里枚举的两种类型.NS_ENUM和NS_OPTIONS本质上是一样的都是枚举. typedef NS_ENUM(NSInteger, UIViewAnimationTransition) { UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAni…
枚举的宏定义 一.简介  NS_ENUM和NS_OPTIONS宏提供了一种简明.简单的方法来定义基于C语言的枚举和选项. 这些宏提高了Xcode中的代码完成性,并明确指定了枚举和选项的类型和大小. 此外,此语法以一种方式来声明枚举,该方式由旧编译器正确地计算,并且由更新的编译器来解释底层类型信息. 使用NS_ENUM.NS_OPTIONS宏定义枚举,有助于定义枚举的名称和类型: 如果需要以按位或操作来组合的枚举都应该使用NS_OPTIONS宏:若枚举不需要互相组合,可以使用NS_ENUM来定义 …
NS_ENUM用于定义普通枚举值,NS_OPTIONS用于定义位移相关操作的枚举值: typedef NS_ENUM(NSUInteger, EOCConnectionState) { EOCConnectionStateDisconnected, EOCConnectionStateConnecting, EOCConnectionStateConnected, }; typedef NS_OPTIONS(NSUInteger, EOCPermittedDirection) { EOCPerm…
一般情况下,我们采用C风格的enum关键字可以定义枚举类型. enum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAnimationTransitionCurlDown, } UIViewAnimationTransition; //位移操作…
When everything is an object, nothing is. So, there are a few ways you could parse that, but for the purposes of this article, this is all to say: sometimes it's nice to be able to drop down to the C layer of things. Yes--that non-objective part of o…
一般情况下,我们采用C风格的enum关键字可以定义枚举类型. enum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAnimationTransitionCurlDown, } UIViewAnimationTransition; //位移操作…
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(NSI…
假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateConnecting, CSConnectionStateConnected, }; 然而定义枚举变量的方式却太不简介,要依如些语法编写: enum CSConnectionState state = CSConnectionStateDisconnected; 若是每次不用敲入 enum 而只需写…
概要 Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序.关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guidelines for Cocoa Google Objective-C Style Guide 本文主要整合了对上述文档的翻译.作者自己的编程经验和其他的相关资料,为公司总结出一份通用的编码规范. 代码格式 使用空格而不是制表符Tab 不要在工程里使用Tab键,使用空格来进行缩进.在Xcode > P…