UITableViewCell 中使用 << 运算符,如下所示:
enum {
UITableViewCellStateDefaultMask = 0,
UITableViewCellStateShowingEditControlMask = 1 << 0,
UITableViewCellStateShowingDeleteConfirmationMask = 1 << 1
};
我去过这篇文章<< operator in objective c enum?但仍然不清楚 << 运算符的使用。
同样是上面提到的Enum,写法如下,那为什么会这样呢,他们都用了<<操作符?
enum {
UITableViewCellStateDefaultMask = 0,
UITableViewCellStateShowingEditControlMask = 1,
UITableViewCellStateShowingDeleteConfirmationMask = 2
};
最佳答案
您链接的帖子非常清楚地解释了原因。 <<
C 中的运算符将数字左移指定的位数。通过将 1 移入每一列,很容易看出枚举选项可以按位或运算在一起。这允许使用 | 将枚举选项组合在一起。运算符并保存在单个整数中。如果枚举声明如下所示,则这将不起作用:
enum {
UITableViewCellStateDefaultMask = 0, (= 00 in binary)
UITableViewCellStateShowingEditControlMask = 1, (= 01 in binary)
UITableViewCellStateShowingDeleteConfirmationMask = 2, (= 10 in binary)
UITableViewCellStateThatIJustMadeUpForThisExample = 3 (= 11 in binary)
};
由于二进制中的 3 = 11,不可能从单个整数知道状态是否为 UITableViewCellStateThatIJustMadeUpForThisExample
或UITableViewCellStateShowingEditControlMask
与 UITableViewCellStateShowingDeleteConfirmationMask
进行或运算.
关于objective-c - << 在 UITableView 枚举中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9852243/