在Objective-C中转发声明ns_options

时间:2018-05-24 00:16:14

标签: objective-c enums options forward-declaration

如何在Objective-C中转发声明NS_OPTIONS?

NS_ENUMS的相关问题:Forward-declare enum in Objective-C

Apple Dev论坛上未回答的问题:https://forums.developer.apple.com/thread/16305

typedef NS_OPTIONS(NSInteger, MSSOption) {
    MSSOptionNone       = 0,
    MSSOptionName       = 1 << 0,
    MSSOptionEmail      = 1 << 1,
    MSSOptionTelephone  = 1 << 2
};

1 个答案:

答案 0 :(得分:3)

与NS_ENUM严格相同,因此Forward-declare enum in Objective-C的答案都有效。

要转发声明您的 NS_OPTIONS ,您有两个解决方案:

解决方案1 ​​

typedef NS_ENUM(NSInteger, MSSOption);

解决方案2

typedef NS_OPTIONS(NSInteger, MSSOption);

两种解决方案都运行良好。使用Xcode 9.3.1和Xcode 10.1进行测试 在https://github.com/Coeur/StackOverflow50499172展示。