iOS枚举

一、普通枚举 【iOS枚举】1、写法

typedef NS_ENUM (NSInteger, ColorType) {RedColor,BlackColor,WhiteColor};

NS_ENUM 标示;NSInteger 固定类型,不能为NSString其他类型; ColorType枚举的类型;ColorType 声明的变量只能为单个值
二、位移枚举 1、写法
typedef NS_OPTIONS (NSUInteger, NetWorkType){Unknown=0,//0NotReachable = 1 << 1,// 102^1WiFi = 1 <<2,// 1002^2WWAN= 1 << 3// 10002^3};

NS_OPTIONS 标示;NSUInteger 固定类型;NetWorkType 枚举的类型;NetWorkType 声明的变量只能可以为多个值
2、例
NetWorkType netWorkType=WiFi|WWAN; [self checkUserNetWorkState:netWorkType]; -(void)checkUserNetWorkState:(NetWorkType )stateType{ //进行&运算 if (stateType&NotReachable) { NSLog(@"NotReachable"); } if(stateType&WiFi){ NSLog(@"WiFi"); } if(stateType&WWAN){ NSLog(@"WWAN"); } }

输出:
2017-06-15 20:50:23.754 BitOperation[1450:34567] WiFi 2017-06-15 20:50:23.755 BitOperation[1450:34567] WWAN

3、iOS系统API例
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) { UIViewAutoresizingNone= 0, UIViewAutoresizingFlexibleLeftMargin= 1 << 0, UIViewAutoresizingFlexibleWidth= 1 << 1, UIViewAutoresizingFlexibleRightMargin= 1 << 2, UIViewAutoresizingFlexibleTopMargin= 1 << 3, UIViewAutoresizingFlexibleHeight= 1 << 4, UIViewAutoresizingFlexibleBottomMargin = 1 << 5 }; UIView*view = [[UIView alloc]init]; //view自动调整自己的宽度,保证与superView左边和右边的距离不变。自动调整自己的高度,保证与superView顶部和底部的距离不变 view.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; [self.view addSubview:view];

    推荐阅读