NS_ENUMとNS_OPTIONS
iOS 6 / Mac OS X 10.8からNS_ENUMとNS_OPTIONSが使えるようになった。
http://nshipster.com/ns_enum-ns_options/
使い分け方をまとめると、
- ビットマスクを使うとき : NS_OPTIONS
- それ以外 : NS_ENUM
■OKパターン
typedef NS_OPTIONS(NSUInteger, ESampleStateAnimal) { ESampleStateCat = 1 << 0, ESampleStateDog = 1 << 1, ESampleStateBird = 1 << 2, }; ESampleStateAnimal state = ESampleStateCat | ESampleStateDog;