概要
枚举是常用到的类型,一般用在“以一系列常量表示某个状态或者可组合的状态”的情况。在iOS中,所有的枚举用NS_ENUM和NS_OPTIONS两种定义。
用法
- NS_ENUM
typedef NS_ENUM(NSUInteger, NYNDirection ) {
NYNDirectionNone = 1,
NYNDirectionTop,
NYNDirectionLeft,
NYNDirectionRight,
NYNDirectionBottom
}
//使用举例
switch (direction) {
case NYNDirectionNone:
break;
case NYNDirectionTop:
break;
case NYNDirectionLeft:
break;
case NYNDirectionRight:
break;
case NYNDirectionNone:
break;
}
- NS_OPTIONS
typedef NS_OPTIONS(NSUInteger, NYNDirection ) {
NYNDirectionNone = 0,
NYNDirectionTop = 1 << 0,
NYNDirectionLeft = 1 << 1,
NYNDirectionRight = 1 << 2,
NYNDirectionBottom = 1 << 3
}
//使用举例
NYNDirection permittedDirection = NYNDirectionTop | NYNDirectionRight;
注意:枚举用在switch语句中,不要实现default分支。这样的好处就是在枚举中加入新的状态后,编译器会提醒switch中有未实现的状态。