iOS 有关枚举 enum 的使用

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

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


枚举一般默认从0开始。

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

位移操作枚举定义如下:


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

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

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


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


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

正常枚举值举例:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容