1.第一種寫法
typedef enum
{
WpfPageTypeTop,
WpfPageTypeBottom,
}WpfPageType;
2.第二種枚舉,定義類型
typedef NS_ENUM(NSInteger,WpfPageType)
{
WpfPageTypeTop,
WpfPageTypeBottom,
};
3.第三種枚舉 ,位移枚舉
//一個(gè)參數(shù)可以傳遞多個(gè)值 ,如果枚舉使用了位運(yùn)算那么就可以使用并運(yùn)算
//如果是位移枚舉,觀察第一個(gè)枚舉值,如果該枚舉值!=0 那么可以默認(rèn)傳0做參數(shù),如果傳0做參數(shù),那么效率最高
typedef NS_OPTIONS(NSInteger, WpfPageActionType)
{
WpfPageActionTypeTop = 1<<0, //1*2(0) =1 1左移0位
WpfPageActionTypeBottom = 1<<1,//1*2(1)=2 1左移1位
WpfPageActionTypeLeft = 1<<2,//1*2(2)=4 1左移2位
WpfPageActionTypeRight = 1<<3,//8 1左移3位
};
二.位移枚舉的使用
- (void)viewDidLoad {
[super viewDidLoad];
// 只要枚舉中有位運(yùn)算就可以使用并運(yùn)算|
// 為什么?
[_textField addTarget:self action:@selector(textBegin) forControlEvents:UIControlEventEditingDidBegin | UIControlEventEditingChanged];
//textBegin 內(nèi)部的實(shí)現(xiàn)原理
[self test:c | b];
}
- (void)test:(int)value
{
// 解析value,判斷下是否包含a,b,c,d
// &:解析有沒有包含a,b,c,d
// NSLog(@"%d %d %d %d",value & a,value & b,value & c,value & d);
if (value & a) NSLog(@"包含了a");
if (value & b) NSLog(@"包含了b");
if (value & c) NSLog(@"包含了c");
if (value & d) NSLog(@"包含了d");
}