1

我有一个枚举。

例子:

枚举事件

{

MOVE_UP = 0,
MOVE_DOWN,
MOVE_RIGHT,
MOVE_LEFT,

};

我想将特定的枚举值作为函数参数传递。例如:

我的方法定义是

  • (void) invokeEvents:(enum events)events withMessage:(NSDictionary*)message;

在调用此方法时,我传递的参数如下:

[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。如何传递参数以便获取所有值。

请为我的问题提出建议。

提前致谢。

4

1 回答 1

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)
{
}
...

.

于 2013-10-25T06:52:58.103 回答