关于枚举
2016-05-22 本文已影响69人
coder_hong
C语言中的另一种数据类型---枚举类型。枚举类型在iOS中也是很常用的
枚举的概念
-
枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数
-
当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型
枚举类型的定义
- 一般形式为:enum 枚举名 {枚举元素1,枚举元素2,……};
#import <UIKit/UIKit.h>
enum Season {
spring,
summer,
autumn,
winter
};
- 结合typedef
typedef enum {
SexMale,
SexFemale
} Sex;
@interface ViewController : UIViewController
@property (nonatomic, assign) Season Sea;
@end
- 其余的两种定义方式
- 定义枚举类型的同时定义枚举变量
#import <UIKit/UIKit.h>
enum Season {
spring,
summer,
autumn,
winter
} sea;
@interface ViewController : UIViewController
@property (nonatomic, assign) enum Season Sea;
@end
- 省略枚举名称,直接定义枚举变量
#import <UIKit/UIKit.h>
enum {
spring,
summer,
autumn,
winter
} sea;
@interface ViewController : UIViewController
@property (nonatomic, assign) enum Season Sea;
@end
枚举的注意
- C语言编译器会将枚举元素(spring、summer等)作为整型常量处理,称为枚举常量
- 枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一个枚举元素的值为0,第二个为1,依次顺序加1。
遍历枚举
enum Season {spring, summer, autumn, winter} s;
// 遍历枚举元素
for (s = spring; s <= winter; s++) {
printf("枚举元素:%d \n", s);
}
输出结果:
在UIKIT中常见的枚举写法
方式一
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger, HTTableViewCellStyle) {
HTTableViewCellStyleDefault,
HTTableViewCellStyleValue1,
HTTableViewCellStyleValue2,
HTTableViewCellStyleSubtitle
};
@interface ViewController : UIViewController
@property (nonatomic, assign) enum HTTableViewCellStyle CellStyle ;
@end
方式二 位移操作枚举定义
#import <UIKit/UIKit.h>
typedef NS_OPTIONS(NSUInteger, HTTableViewCellStateMask) {
HTTableViewCellStateDefaultMask = 0,
HTTableViewCellStateShowingEditControlMask = 1 << 0,
HTTableViewCellStateShowingDeleteConfirmationMask = 1 << 1
};
@interface ViewController : UIViewController
@property (nonatomic, assign) enum HTTableViewCellStateMask StateMasStyle ;
@end