我尝试使用 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; NotReachable
、ReachableViaWiFi
和 ReachableViaWWAN
可以直接使用。请注意,前面没有点 (.
)。
关于objective-c - 在 Swift 3 中使用 Objective C typedef 枚举时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41515833/