Swift-Swift中的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

我对C API的定义如下:

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
}