Swift-Swift中的C API枚举
我对C API的定义如下:Swift-Swift中的C API枚举,c,swift,enums,C,Swift,Enums,我对C API的定义如下: typedef enum Foo { A = 0, B = 1 } Foo; typedef struct Bar { int a; Foo foo; } Bar; 如何在Swift中直接使用Fooenum?我知道,我可以做var-data:Foo=A,但我不喜欢这种语法,其中A似乎是一些全局变量 我宁愿使用var数据:Foo=Foo.A或类似的标准枚举。有办法吗?如果枚举是通过NS_enum或CF_enum宏定义的,则将其作为枚举导入Swif
typedef enum Foo {
A = 0,
B = 1
} Foo;
typedef struct Bar {
int a;
Foo foo;
} Bar;
如何在Swift中直接使用Foo
enum?我知道,我可以做var-data:Foo=A
,但我不喜欢这种语法,其中A
似乎是一些全局变量
我宁愿使用
var数据:Foo=Foo.A
或类似的标准枚举。有办法吗?如果枚举是通过NS_enum
或CF_enum
宏定义的,则将其作为枚举导入Swift,请参见示例
<>代码> CF.EnUng/<代码>是从核心基础框架中定义的>cFaveActual.H./C>中,因此,如果还没有通过其他核心基础包括文件:间接导入,则必须导入该文件。
#include <CoreFoundation/CFAvailability.h>
typedef CF_ENUM(int, Foo) {
A = 0,
B = 1
};
这两份声明均作为一份文件导入Swift
public enum Foo : Int32 {
case A
case B
}
后一个版本不需要额外的include文件
(有关“打开”和“关闭”枚举之间的差异,请参见。)
public enum Foo : Int32 {
case A
case B
}