将我的enum导入swift时,它成为一个结构并丢失了案例。如何才能快速将其导入为枚举?
c代码:
enum Foo {
A = 1,
B = 2
};
Swift生成:
public struct Foo : Equatable, RawRepresentable {
public init(_ rawValue: UInt32)
public init(rawValue: UInt32)
public var rawValue: UInt32
}
预期的Swift:
enum Foo: UInt32 {
case A = 1,
case B = 2
}
答案 0 :(得分:1)
当Swift导入常用的C枚举时,案例将作为全局常量导入。
似乎如下:
let A = Foo(1)
let B = Foo(2)
您可以像这样使用它们:
var someFoo: Foo = A
我不确定为什么这些常量不包含在“生成的接口”中。
如果您可以触摸.h文件并可以导入Objective-C类的某些标题,则可以使用宏NS_ENUM
。
typedef NS_ENUM(NSInteger, Bar) {
A = 1,
B = 2
};
生成的标题如下:
public enum Bar : Int {
case A
case B
}
(生成的接口不显示rawValue
,但与原始代码一样,它们分别为1和2。)
但是我不知道这是否可以作为您的选择。