美文网首页
关于iOS的枚举

关于iOS的枚举

作者: 平谦 | 来源:发表于2017-04-20 11:10 被阅读103次

iOS的枚举写法有很多种.

typedef enum
{
environmentDebug = 1, /< 枚举,预发环境 */
environmentDaily, /< 枚举,日常环境 */
environmentDailyTwo, /< 枚举,日常二套环境 */
environmentRelease /< 枚举,正式环境 */
}MtopEnvironment;

typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
UIViewAnimationTransitionNone,//默认从0开始
UIViewAnimationTransitionFlipFromLeft,
UIViewAnimationTransitionFlipFromRight,
UIViewAnimationTransitionCurlUp,
UIViewAnimationTransitionCurlDown,
};

enum{
UIViewAnimationTransitionNone,
UIViewAnimationTransitionFlipFromLeft,
UIViewAnimationTransitionFlipFromRight,
UIViewAnimationTransitionCurlUp,
UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;

苹果对于NS_ENUM的宏的定义在Foundation.framework的NSObjCRuntime.h中:

#if (__cplusplus &&__cplusplus >= 201103L && (__has_extension(cxx_strong_enums) || __has_feature(objc_fixed_enum))) || (!__cplusplus && __has_feature(objc_fixed_enum))
#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
#if (__cplusplus)
#define NS_OPTIONS(_type, _name) _type _name; enum : _type
#else
#define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
#endif
#else
#define NS_ENUM(_type, _name) _type _name; enum
#define NS_OPTIONS(_type, _name) _type _name; enum
#endif

typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
展开得到:
typedef enum UIViewAnimationTransition : NSInteger UIViewAnimationTransition;
enum UIViewAnimationTransition : NSInteger {
从枚举定义来看,NS_ENUM和NS_OPTIONS本质是一样的,仅仅从字面上来区分其用途。NS_ENUM是通用情况,NS_OPTIONS一般用来定义具有位移操作或特点的情况(bitmask)。

实际使用时,可以直接定义:

typedef enum : NSInteger {....} UIViewAnimationTransition;
等效于上述定义

相关文章

  • 关于iOS的枚举

    iOS的枚举写法有很多种. typedef enum{environmentDebug = 1, /< ...

  • iOS 关于枚举的使用

    引言: 枚举值 它是一个整形(int) 并且,它不参与内存的占用和释放,枚举定义变量即可直接使用,不用初始化.在...

  • Swift 5.1 (8) - 枚举类型

    级别: ★☆☆☆☆标签:「iOS」「Swift 5.1」「枚举」「迭代枚举」「枚举关联值」「递归枚举」作者: 沐灵...

  • iOS 常用数据(不定时提交更新)

    iOS 常用数据 别名 ——Block 枚举

  • ios高效开发-正确的使用枚举(Enum)

    ios高效开发-正确的使用枚举(Enum)

  • 关于iOS中的枚举的写法

    在日常开发中,枚举的使用可以提升我们的代码易读性,一般枚举的几个写法,我在此整理一下,梳理梳理自己的思路,如果有理...

  • iOS枚举(位移枚举)

    什么是枚举 在程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言...

  • iOS 位枚举

    在 iOS 开发中,我们使用系统的枚举定义的时候,经常可以看到位枚举: 需要掌握位枚举,我们需要先了解位运算 和 ...

  • iOS枚举

    一、简单介绍 枚举是C语言中的一种基本数据类型,是一个"被命名的整型常量"的集合,它不参与内存的占用和释放,我们在...

  • iOS枚举

    一、普通枚举 1、写法 NS_ENUM 标示;NSInteger 固定类型,不能为NSString其他类型;Col...

网友评论

      本文标题:关于iOS的枚举

      本文链接:https://www.haomeiwen.com/subject/pxokzttx.html