//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄
一、概念
枚举值它是一个整形(int)并且,它不参与内存的占用和释放,枚举定义变量即可直接使用,不用初始化.
在代码中使用枚举的目的只有一个,那就是增加代码的可读性.
二普通枚举
typedefNS_ENUM(NSInteger, Test1)
{
//以下是枚举成员
Test1A =0,
Test1B =1,
Test1C =2,
Test1D =3
};
三、枚举的定义还支持位运算
typedefNS_ENUM(NSInteger, Test)
{
TestA =1,//1 1 1或者1 << 0,
TestB =1<<1,//2 2 10转换成10进制2
TestC =1<<2,//4 3 100转换成10进制4
TestD =1<<3,//8 4 1000转换成10进制8
TestE =1<<4//16 5 10000转换成10进制16
};
注意:等于号后面必须等于1
四、位运算优点:
什么时候要用到这种方式呢?
那就是一个枚举变量可能要代表多个枚举值的时候.其实给一个枚举变量赋予多个枚举值的时候,原理只是把各个枚举值加起来罢了.
当加起来以后,就获取了一个新的值,那么为了保证这个值的唯一性,这个时候就体现了位运算的重要作用.
位运算可以确保枚举值组合的唯一性.
因为位运算的计算方式是将二进制转换成十进制,也就是说,枚举值里面存取的是计算后的十进制值.
例如:
通过上面的位运算方式设定好枚举以后,打印出来的枚举值分别是:124816
这5个数字,无论你如何组合在一起,也不会产生两个同样的数字.
手工的去创建位运算枚举,还有稍微有点花时间的,好在Apple已经为我们准备的uint.