任何对此的经验,例如,我有以下用objc编写的枚举
typedef enum {
Type1,
Type2
} Type;
extension Type: RawRepresentable {
typealias RawValue = UInt32
}
当我尝试符合RawRepresentable时,编译器崩溃。我唯一能想到的是RawRepresentable仅适用于快速枚举。
有什么想法吗?
答案 0 :(得分:4)
忘记使用原始C枚举,而使用Objective-C NS_ENUM
宏:
typedef NS_ENUM(NSInteger, MyEnumType) {
Type1,
Type2
};
然后在Swift中,枚举将已经是RawRepresentable
。您不能以这种方式添加该一致性。好吧,也许可以,但是还必须声明init?(rawValue:)
和var rawValue
。