Objective-C枚举符合RawRepresentable

时间:2019-12-02 12:51:55

标签: swift rawrepresentable

任何对此的经验,例如,我有以下用objc编写的枚举

typedef enum {
  Type1,
  Type2
} Type;

extension Type: RawRepresentable {
    typealias RawValue = UInt32
}

当我尝试符合RawRepresentable时,编译器崩溃。我唯一能想到的是RawRepresentable仅适用于快速枚举。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

忘记使用原始C枚举,而使用Objective-C NS_ENUM宏:

typedef NS_ENUM(NSInteger, MyEnumType) {
    Type1,
    Type2
};

然后在Swift中,枚举将已经是RawRepresentable。您不能以这种方式添加该一致性。好吧,也许可以,但是还必须声明init?(rawValue:)var rawValue