我有一个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)
我如何像对阵列一样枚举它?
答案 0 :(得分:4)
你不能枚举,因为这些是常量值而不是集合中的元素,但是如果enum
遵循没有间隙的模式,那么你可以生成所有的数字枚举的值。你的确如此:
for (unsigned i = 0; i < 5; i++) {
NSLog(@"value=%u", 1 << i);
}
要生成名称,您需要一个查找表。