枚举类型 enum, iOS 系统框架中频繁用到此类型,在以一系列常量来表示错误状态码或者可组合的选项时,极宜使用枚举为其命名。
枚举只是一种常量命名方式,可以增强代码的可读性。
Foundation框架已经为我们提供了更加“统一、便捷”的枚举定义方法
//NS_ENUM,定义状态等普通枚举
typedef NS_ENUM(NSUInteger, BNConnectionState) {
BNConnectionStateOK = 0,
BNConnectionStateError,
BNConnectionUnknow
};
//NS_OPTIONS,定义选项
typedef NS_OPTIONS(NSUInteger, BNDirection) {
BNDirectionNone = 0,
BNDirectionTop = 1 << 0,
BNDirectionLeft = 1 << 1,
BNDirectionRight = 1 << 2,
BNDirectionBottom = 1 << 3
};
What is the difference between NS_ENUM and NS_OPTIONS?