1.第一种写法
typedef enum
{
WpfPageTypeTop,
WpfPageTypeBottom,
}WpfPageType;
2.第二种枚举,定义类型
typedef NS_ENUM(NSInteger,WpfPageType)
{
WpfPageTypeTop,
WpfPageTypeBottom,
};
3.第三种枚举 ,位移枚举
//一个参数可以传递多个值 ,如果枚举使用了位运算那么就可以使用并运算
//如果是位移枚举,观察第一个枚举值,如果该枚举值!=0 那么可以默认传0做参数,如果传0做参数,那么效率最高
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];
// 只要枚举中有位运算就可以使用并运算|
// 为什么?
[_textField addTarget:self action:@selector(textBegin) forControlEvents:UIControlEventEditingDidBegin | UIControlEventEditingChanged];
//textBegin 内部的实现原理
[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");
}