iOS 关于枚举

iOS技术成长之路

Posted by DM on October 25, 2024
typedef NS\_OPTIONS(NSUInteger, SDRectCorner) {
SDRectCornerTopLeft     = 1 << 0,
SDRectCornerTopRight    = 1 << 1,
SDRectCornerBottomLeft  = 1 << 2,
SDRectCornerBottomRight = 1 << 3,
SDRectCornerAllCorners  = \~0UL
};

使用场景:当枚举中的选项存在彼此组合时

原理:因为在每个枚举所对应的二进制表示中,只有 1 个二进制位的指是 1。

代表的是 2 的 N 次幂

小知识点 tips

我们总习惯在 switch 语句中加上 default 分支,然后,若是用枚举来定义状态机,则最好不要加上 default 分支,这样的话,如果稍后新加枚举值,那么编译器就会发出警告信息,提示 switch 分支中未处理。