C语言的枚举
typedef enum ENUM_NAME{ ENUM_VAR1, // 默认是int类型,从0开始 ENUM_VAR2 }ENUM_NAME;
其他的写法就不列举了。
Objective-C的枚举
在oc中使用枚举可以用NS_ENUM和NS_OPTIONS关键字(确切的讲是对enum的重命名)来定义枚举类型。下面来看看如何使用:
typedef NS_ENUM(NS_OPTIONS) (使用的数据类型,枚举名称) { enumVar,...};
如:
typedef NS_ENUM(NSInteger, ENUMNAME) { enumVar1 = 0, enumVar2, };
// 该种枚举和上面并无本质区别,只是在特定场合(带有掩码)使用时更具可读性。 typedef NS_OPTIONS(NSUInteger, MASK) { MASKNone = 0, MASKLeft = 1
将枚举值转换为字符串
使用如下方法:
+ (NSString *)descriptionOfEnumVar:(MASK)mask
{
// 定义和枚举相关的数组
static NSString * enumVarDescriptions[] = {
// [下标] = 值
[MASKNone] = @"MASKNone",
[MASKLeft] = @"MASKLeft",
[MASKTop] = @"MASKTop",
[MASKRight] = @"MASKRight",
[MASKBottom] = @"MASKBottom",
};
return enumVarDescriptions[mask];
}
好东西,记录之。