iOS 有关枚举 enum 的使用

枚举值一般是4个字节的int值,在64位系统上是8个字节。

一般定义枚举的时候如下:


iOS 有关枚举 enum 的使用_第1张图片

枚举一般默认从0开始。

这里输出Father,Mother,Borther,Sister分别是 0、 1、 2、3

位移操作枚举定义如下:


iOS 有关枚举 enum 的使用_第2张图片

这里位移枚举变量的算法是把后面的每个枚举值相加,将其对应的二进制转化为十进制就是该枚举变量的唯一值。

Father  =  0               //   0

Mother =  1 << 0      //    1    1

Brother = 1 <<  1      //    1 + 1 = 2(2进制位数)  =  10   转化为十进制   2

SisterA =  1 <<  2    //    1 + 2 = 3(2进制位数)  =  100  转化为十进制  4

SisterB =  1 <<  3    //    1 + 3 = 4(2进制位数)  =  1000  转化为十进制  8

SisterC =  1 <<  4    //    1 + 4 = 5(2进制位数)  =  10000  转化为十进制  16

SisterD =  1 <<  5    //    1 + 5 = 6(2进制位数)  =  100000  转化为十进制  32

这里输出Father,Mother,Borther,SisterA,SisterB,SisterC,SisterD分别是 0、 1、 2、4、8、16、32

在iOS6和Mac OS 10.8以后Apple引入了两个宏来重新定义这两个枚举类型。

关于enum 建议使用 NS_ENUM 和 NS_OPTIONS 宏来定义枚举类型,参见官方的 How to Adopt。

以上两种枚举定义建议更改如下:


iOS 有关枚举 enum 的使用_第3张图片

NS_OPTIONS一般用来定义位移相关操作的枚举值


iOS 有关枚举 enum 的使用_第4张图片

下面是苹果官方文档给出的enum更换举例:

正常枚举值举例:

iOS 有关枚举 enum 的使用_第5张图片

位移相关操作的枚举值举例:

iOS 有关枚举 enum 的使用_第6张图片

你可能感兴趣的:(iOS 有关枚举 enum 的使用)