ios - 枚举NS_OPTIONS

标签 ios objective-c nsoperation

我有一个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)

我如何像对数组那样枚举它?

最佳答案

您无法这样枚举,因为它们是常量值,而不是集合中的元素,但是,如果enum遵循没有间隙的模式,则可以生成枚举的所有数值。您这样做,所以:

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

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

关于ios - 枚举NS_OPTIONS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19762925/

相关文章:

iOS 应用程序 - 如何从应用程序商店获取数据?

iPhone 应用程序 : Linking to review page

objective-c - 如何获取当前正在执行的 NSOperation?

ios - 如何在我的应用程序中禁用 iOS 7 界面更改

ios - NSPersistentContainer 默认创建什么样的持久化存储?

iOS 8.1 CoreLocationManager requestWhenInUseAuthorization 不提示 AlertView

iphone - NSOperation performSelectorOnMainThread崩溃

ios - 在弹出窗口上显示导航栏

ios - 如何将pickerview从另一个nib文件显示到文本字段inputview主 Storyboard

iphone - iOS-移植C程序:在NSOperation作业中调用pthread_exit()