1

我有一个 NS_OPTIONS:

typedef NS_OPTIONS(NSUInteger, BrowserViewMenuOptions) {
    BrowserViewMenuOptionNone     = 0,
    BrowserViewMenuOptionCopy     = 1 << 0,
    BrowserViewMenuOptionMore     = 1 << 1,
    BrowserViewMenuOptionShare    = 1 << 2,
    BrowserViewMenuOptionDelete   = 1 << 3,
    BrowserViewMenuOptionDownload = 1 << 4,
};

假设我有这样的值:

(BrowserViewMenuOptionCopy | BrowserViewMenuOptionMore | BrowserViewMenuOptionShare)

我怎样才能像我们对数组一样枚举它?

4

1 回答 1

4

您不能这样枚举,因为这些是常量值而不是集合中的元素,但是如果enum遵循没有间隙的模式,那么您可以生成枚举的所有数值。你的,所以:

for (unsigned i = 0; i < 5; i++) {
    NSLog(@"value=%u", 1 << i);
}

为了生成名称,您需要一个查找表。

于 2013-11-04T06:54:37.483 回答