2015-06-06 108 views
2

我在桥接中使用Swift项目中的Obj-C库。所有都OK,除了NS_ENUM自定义值:Obj-C到Swift桥接问题:NS_ENUM - > enum

对象 - (原)

typedef NS_ENUM(NSInteger, HTTPStatusCode) { 
// Informational 1xx 
    HTTPStatusCodeContinue = 100, 
    HTTPStatusCodeSwitchingProtocols = 101, 
    HTTPStatusCodeProcessing = 102, 
    HTTPStatusCodeCheckpoint = 103, 
    ... 

斯威夫特(带桥接)

enum HTTPStatusCode : Int { 

    // Informational 1xx 
    case Continue 
    case SwitchingProtocols 
    case Processing 
    case Checkpoint 
    ... 

如何NS_ENUM实施桥接可以正确地转换为斯威夫特?

+0

其实值斯威夫特将在其桥接生成是小写---。继续.switchingProtocols .processing .checkpoint –

回答

1

我想你在这里发布的是一个自动生成的Swift代码,这意味着它省略了实现细节。

好消息是,它以同样的方式仍然有效,你所期望的:

let x: HTTPStatusCode = .Continue 
println("Continue = \(x.rawValue)") 

打印100

+0

这很好 - 但是值的名字是什么---在Swift中有什么方法可以打印x的值 - 'continue'?我找不到办法做到这一点---而大多数可可和Cocoa-Touch都暴露了NS_Enum –