objective-c之枚举

概要

枚举是常用到的类型,一般用在“以一系列常量表示某个状态或者可组合的状态”的情况。在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中有未实现的状态。

你可能感兴趣的:(objective-c之枚举)