iOS 枚举 (enum)

枚举

/*
 在Mac OS 10.8后apple引入两个宏来定义枚举类型:
 1、NS_ENUM    是通用情况
 2、NS_OPTIONS 定义具有位移操作的或特点的情况

 位运算
 1、&:两个都为1时,才为1,反之为0;
 2、|:有一个为1时,才为1,反之为0;
 3、^:两个不同为1,反之为0;
 4、~:取反
 5、<<:左位移,空位补0;
 6、>>:右位移,空位补0.

 */
typedef NS_ENUM(NSInteger,ANIMALTYPE){
    DOG,
    CAT,
    FISH
};

typedef NS_OPTIONS(NSInteger, DIRECTION){
    EAST   = 0,
    SOUTH  = 1 << 0,
    WEST   = 1 << 1,
    NORTH  = 1 << 2
};
位移枚举使用
/*
0000 0000                   0  (EAST)

0000 0001   0000 0001 2^0 = 1   (SOUTH)

0000 0001   0000 0010 2^1 = 2   (WEST)

0000 0001   0000 0100 2^2 = 4   (NORTH)

EAST | SOUTH
0000 0000
0000 0001

0000 0001

SOUTH | WEST
0000 0001
0000 0010

0000 0011  2^1+2^0 = 3

WEST | NORTH
0000 0010
0000 0100

0000 0110  2^2 + 2^1 = 6
*/

(按位或 保证或之后结果不会重复)。

记录下,仅供参考!

猜你喜欢

转载自blog.csdn.net/lovehalok/article/details/80179696