第五条:用枚举表示状态,选项,状态码
1.状态-NS_ENUM使用:
(1)是用来声明一般的NSInteger类型的:只能有一种
(2)默认:以0开始递加,即下例为:0,1,2,3
(3)自定义:OneBtnTag == 421,则为:421,422,423,424,425
//NS_ENUM
typedef NS_ENUM(NSInteger, Btn) { // 按钮,从上到下
OneBtnTag = 421,
TwoBtnTag
ThreeBtnTag
FourBtnTag
FiveBtnTag
};
2.选项-NS_OPTIONS使用:
(1)用来声明位掩码:同时可以有一种或一种以上
(2)位运算符:左移-a << b就表示把a转为二进制后左移b位(在后面添b个0)
//NS_OPTIONS
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,//值为1(2的0次方)
UIViewAutoresizingFlexibleWidth = 1 << 1,//值为2(2的1次方)
UIViewAutoresizingFlexibleRightMargin = 1 << 2,//值为4(2的2次方)
UIViewAutoresizingFlexibleTopMargin = 1 << 3//值为8(2的
};
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
(3)可组合使用:
autoviewsizing = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
3.枚举在switch语句中的使用:
(1)使用方式:在处理枚举类型的switch语句中不要实现default分支
(2)作用:在加入新枚举时,编译器会提示开发者,switch未处理所有枚举
switch (state) {
case firstBtnTag:
//...
break;
case secondBtnTag:
//...
break;
case thirdBtnTag:
//...
break;
}