您的位置:首页 > 移动开发 > Objective-C

iOS之《Effective Objective-C 2.0》读书笔记(5)

2017-08-17 18:36 399 查看

第五条:用枚举表示状态,选项,状态码

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息