我正在查看cocoa框架中的枚举,我看到了这个:
enum {
NSNetServiceNoAutoRename = 1UL << 0
};
typedef NSUInteger NSNetServiceOptions;
我的问题是这怎么可能?
NSNetServiceOptions
如何与enum
绑定?
是否只能在目标c或c?
中实现答案 0 :(得分:1)
int
s。
例如,这完全有效:
enum {A = 1};
enum {B = A+1};
const int C = A | B;
枚举使用typedef而不是shortform typedef enum {...} Name;
的原因是因为枚举默认为类型int
。通过使用typedef,您可以将枚举定义为无符号整数。
答案 1 :(得分:1)
NSNetServiceOptions 与 enum 在 enum 将保留整数值的上下文中绑定。在上面的示例中,您将为 enum 创建一个变量as,
NSNetServiceOptions _netServiceOptions;
您甚至可以忽略 typedef 并直接使用
NSUIInteger _netServiceOptions;