我有一个枚举。
示例:
枚举事件
{
MOVE_UP = 0,
MOVE_DOWN,
MOVE_RIGHT,
MOVE_LEFT,
};
我想将特定的枚举值作为函数参数传递。例如:
我的方法定义是
在调用此方法时,我传递的参数如下:
[self invokeEvents:MOVE_UP | MOVE_DOWN | MOVE_RIGHT withMessage:message;
检查接收参数事件时,值始终是MOVE_UP | MOVE_DOWN | MOVE_RIGHT值列表的最后一个值。根据枚举值MOVE_RIGHT 2。
但我希望所有值如“MOVE_UP | MOVE_DOWN | MOVE_RIGHT”等于0,1和2。 如何传递参数以便我可以获得所有值。
请为我的问题提出建议。
提前致谢。
答案 0 :(得分:2)
将您的枚举更改为:
{
MOVE_NONE = 0
MOVE_UP = 1<<0,
MOVE_DOWN = 1<<1,
MOVE_RIGHT = 1<<2,
MOVE_LEFT = 1<<3,
};
因此,您可以完全按照自己的意愿传递参数:MOVE_UP|MOVE_DOWN|MOVE_RIGHT
。
并在invokeEvents:withMessage:
检查
if(events & MOVE_UP)
{
}
if(events & MOVE_DOWN)
{
}
...