Objective-C 枚举符合 RawRepresentable
Objective-C enums conform to RawRepresentable
我有这方面的任何经验,例如以下用 objc 编写的枚举
typedef enum {
Type1,
Type2
} Type;
extension Type: RawRepresentable {
typealias RawValue = UInt32
}
当我试图符合 RawRepresentable.The 时,编译器崩溃了,我唯一可以想象的是 RawRepresentable 仅适用于 swift 枚举。
有什么想法吗?
忘记使用原始 C 枚举并使用 Objective-C NS_ENUM
宏:
typedef NS_ENUM(NSInteger, MyEnumType) {
Type1,
Type2
};
然后在 Swift 中枚举已经是 RawRepresentable
。您不能以这种方式添加该一致性。好吧,你可能可以,但你还必须声明 init?(rawValue:)
和 var rawValue
.
我有这方面的任何经验,例如以下用 objc 编写的枚举
typedef enum {
Type1,
Type2
} Type;
extension Type: RawRepresentable {
typealias RawValue = UInt32
}
当我试图符合 RawRepresentable.The 时,编译器崩溃了,我唯一可以想象的是 RawRepresentable 仅适用于 swift 枚举。
有什么想法吗?
忘记使用原始 C 枚举并使用 Objective-C NS_ENUM
宏:
typedef NS_ENUM(NSInteger, MyEnumType) {
Type1,
Type2
};
然后在 Swift 中枚举已经是 RawRepresentable
。您不能以这种方式添加该一致性。好吧,你可能可以,但你还必须声明 init?(rawValue:)
和 var rawValue
.