This question already has answers here:
Multiple value enum in Obj-C
(2个答案)
7年前关闭。
我正在研究如何在Objective-C中使用UISwipeGestureRecognizer类,并且碰巧遇到了一个名为UISwipeGestureRecognizerDirection的枚举。
苹果将其定义为:
我不确定编译器如何解释上述内容,特别是<
任何方向都将不胜感激。提前致谢!
允许按位测试很方便。实际值没有什么意义,只不过它们都可以打包成一个变量-枚举值可以是任何东西,只要它们是唯一的即可。
(2个答案)
7年前关闭。
我正在研究如何在Objective-C中使用UISwipeGestureRecognizer类,并且碰巧遇到了一个名为UISwipeGestureRecognizerDirection的枚举。
苹果将其定义为:
typedef enum {
UISwipeGestureRecognizerDirectionRight = 1 << 0,
UISwipeGestureRecognizerDirectionLeft = 1 << 1,
UISwipeGestureRecognizerDirectionUp = 1 << 2,
UISwipeGestureRecognizerDirectionDown = 1 << 3
}
我不确定编译器如何解释上述内容,特别是<
任何方向都将不胜感激。提前致谢!
最佳答案
这是按位左移。这相当于
typedef enum {
UISwipeGestureRecognizerDirectionRight = 1,
UISwipeGestureRecognizerDirectionLeft = 2,
UISwipeGestureRecognizerDirectionUp = 4,
UISwipeGestureRecognizerDirectionDown = 8
}
允许按位测试很方便。实际值没有什么意义,只不过它们都可以打包成一个变量-枚举值可以是任何东西,只要它们是唯一的即可。
关于ios - 需要帮助来了解<< <<位运算符在Objective-C中的工作方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17606480/
10-08 21:05