Objective-C NS_ENUM 与 NS_OPTIONS 区别分析

枚举优势
  • 编译器会提供类型检测
  • switch 语句完整性提示
NS_ENUM

NS_ENUM(...) new;

  • 定义通用枚举类型,一般用来区分类型
  • 一般枚举值单选
  • 一般使用NSInteger
NS_OPTIONS

NS_OPTIONS(_type, _name) new;

  • 定义位移枚举,一般用来计算,标志连续性有关联的几个动作
  • 一般枚举值多选,同时支持多个关联枚举类型
  • 位移赋值,为了保证多个枚举值组合的唯一性。
  • 一般使用NSUInteger
参考文章

详细讲解:Enum-枚举的正确使用

推荐阅读更多精彩内容