objective-c - 在 Swift 3 中使用 Objective C typedef 枚举时出错

标签 objective-c swift

我尝试使用 Apple 提供的 Reachability 类。

它有一个像这样的 Objective-C 枚举:

typedef enum : NSInteger {
    NotReachable = 0,
    ReachableViaWiFi,
    ReachableViaWWAN
} NetworkStatus;

在 Swift 中,我正在做这样的事情:

if let networkReachability = notification.object as? Reachability {
    let remoteHostStatus = networkReachability.currentReachabilityStatus()
    let center = NotificationCenter.default
    var notificationKey: String

    if (remoteHostStatus == NetworkStatus.NotReachable) {
        ...
    }
}

但是我得到了错误:

Type 'NetworkStatus' has no member 'NotReachable'

我做错了什么?我如何在 Swift 中使用 Objective-C enum

最佳答案

typedef enum : NSInteger {
    NotReachable = 0,
    ReachableViaWiFi,
    ReachableViaWWAN
} NetworkStatus;

这是一个“普通的”C 枚举。所以它在没有命名空间的情况下进入 Swift; NotReachableReachableViaWiFiReachableViaWWAN 可以直接使用。请注意,前面没有点 (.)。

关于objective-c - 在 Swift 3 中使用 Objective C typedef 枚举时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41515833/

相关文章:

objective-c - 在 Google Map API 中默认显示标记的标题

swift - NSOperationQueue 在计算任务上的性能比单线程差

swift - 将 UInt32 值保存到 NSUserDefaults (Swift 2.0) 错误

objective-c - 数独回溯算法失败

objective-c - 相似或替代代码块的颜色突出显示

objective-c - cocoa QTMovieView keydown 不起作用

ios - 从 MSConversation 访问以前的 MSMessage

ios - 从 Appdelegate 获取 ViewController

iphone - 使用未解析的标识符 'Braintree'

Swift viewWillAppear 重定向