来自Objective-C的Swift Enumeration方法调用

时间:2017-12-12 20:04:17

标签: objective-c enums swift4

我的Swift枚举如下:

 @objc enum NetworkError: Int, RawRepresentable {
        case NoData
        case Generic

        func description() -> String {
            switch self {
            case .NoData: return "No data available"
            case .Generic: return "Something goes wrong, please try again later"
            }
        }
    }

我的问题是,如何从Objective-C类调用description方法。在Swift中,调用非常简单:

NetworkError.Generic.description()
NetworkError.NoData.description()

由于

1 个答案:

答案 0 :(得分:1)

我认为你不能这样做。如果你看一下生成的头文件,enum看起来像Objective-C:

typedef SWIFT_ENUM(NSInteger, NetworkError) {
  NetworkErrorNoData = 0,
  NetworkErrorGeneric = 1,
};

它只是一个基本的C风格枚举,它不是方法的对象,更多信息https://developer.apple.com/swift/blog/?id=22