可互操作的 Obj-C typedef NS_ENUM 到 swift

Posted

技术标签:

【中文标题】可互操作的 Obj-C typedef NS_ENUM 到 swift【英文标题】:Interoperable Obj-C typedef NS_ENUM to swift 【发布时间】:2015-06-08 11:02:50 【问题描述】:

在我的 Objective-C .h 文件中,我定义了:

typedef NS_ENUM(NSInteger, RTSpinKitViewStyle) 
    RTSpinKitViewStylePlane,
    RTSpinKitViewStyleCircleFlip
;

如何在 Swift 代码中访问枚举?

我尝试使用点运算符作为RTSpinKitViewStyle.RTSpinKitViewStyleCircleFlip,但它显示编译错误

"RTSpinKitViewStyle.Type 没有成员类型名称 RTSpinKitViewStyleCircleFlip " .

【问题讨论】:

【参考方案1】:

用途:

RTSpinKitViewStyle.CircleFlip

或者只是:

.CircleFlip

【讨论】:

@sambhav 你添加了桥接文件并导入了包含枚举定义的文件吗? 好的,我猜这个错误已经消失了。实际上,现在我必须调用一个函数 func insertSpinnerOfStyle(style:RTSpinKitViewStyle, backgroundColor:UIColor, labelString:NSString) 。其中第一个参数是枚举。现在它的显示错误不能调用带有类型参数的 insertSpinner 样式【参考方案2】:

您可以通过RTSpinKitViewStyle.Plane 访问它们。

【讨论】:

它仍然显示相同的编译错误,我之前尝试过

以上是关于可互操作的 Obj-C typedef NS_ENUM 到 swift的主要内容,如果未能解决你的问题,请参考以下文章

可移植/可互操作的 WCF 合同

哪个可用于 JavaScript 和 Grails/Java 的可互操作模板框架?

第13章 万维网:可互操作性案例分析

FDA 和 WCF 互操作性证明

对块进行类型定义是如何工作的

OBJ-C 操作方法:在同一设备中使用 BLE 连接和 iBeacon 的应用程序