我正在尝试实现以下typedef
typedef NS_OPTIONS (NSInteger, MyCellCorners) {
MyCellCornerTopLeft,
MyCellCornerTopRight,
MyCellCornerBottomLeft,
MyCellCornerBottomRight,
};
并正确分配一个值
MyCellCorners cellCorners = (MyCellCornerTopLeft | MyCellCornerTopRight);
绘制单元格时,如何检查哪个选项匹配,以便正确绘制它。
最佳答案
检查此值的正确方法是先按位与这些值相加,然后检查与所需值的相等性。
MyCellCorners cellCorners = MyCellCornerTopLeft | MyCellCornerTopRight;
if ((cellCorners & MyCellCornerTopLeft) == MyCellCornerTopLeft) {
// top left corner set
}
以下引用资料解释了为什么这是正确的,并提供了对枚举类型的其他见解。
引用:checking-for-a-value-in-a-bit-mask
关于objective-c - NS_OPTIONS个匹配项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13814733/