在 Objective-C 中前向声明 ns_options

foo*_*bar 4 enums objective-c options forward-declaration

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

NS_ENUMS 的相关 SO 问题:Objective-C 中的前向声明枚举

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

typedef NS_OPTIONS(NSInteger, MSSOption) {
    MSSOptionNone       = 0,
    MSSOptionName       = 1 << 0,
    MSSOptionEmail      = 1 << 1,
    MSSOptionTelephone  = 1 << 2
};
Run Code Online (Sandbox Code Playgroud)

Cœu*_*œur 5

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

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

解决方案1

typedef NS_ENUM(NSInteger, MSSOption);
Run Code Online (Sandbox Code Playgroud)

解决方案2

typedef NS_OPTIONS(NSInteger, MSSOption);
Run Code Online (Sandbox Code Playgroud)

两种解决方案都可以正常工作。使用 Xcode 9.3.1 和 Xcode 10.1 进行测试。
https://github.com/Coeur/StackOverflow50499172 进行演示。