我试图在Swift中这样做:
var netStatus:NetworkStatus = reachability.currentReachabilityStatus();
if (!netStatus) { // error here says network status not convertible to bool
....
}
typedef enum : NSInteger {
NotReachable = 0,
ReachableViaWiFi,
ReachableViaWWAN
} NetworkStatus;
我也试过
if (netStatus ==0)
if (netStatus == NetworkStatus.NotReachable) // NetworkStatus.type does not have a member named 'NotReachable'
等
答案 0 :(得分:2)
尝试使用现代的objective-c实践:
typedef NS_ENUM(NSInteger, NetworkStatus) {
NetworkStatusNotReachable,
NetworkStatusReachableViaWiFi,
NetworkStatusReachableViaWAN
};
答案 1 :(得分:0)
阅读Swift手册,了解如何定义枚举。它更像是
enum NetworkStatus:Int {
case NotReachable = 0
case Reach....
}
答案 2 :(得分:0)
不幸的是,枚举不能从Objective-C转移到Swift,它需要是一个NS_ENUM。
如果你可以改变枚举的定义,那么Daniel T.的解决方案是最好的。
但是,如果您无法更改枚举定义,那么您可以创建一个中间类来提供NS_ENUM和枚举值的映射。
有关详细信息,请参阅:https://stackoverflow.com/a/24950414/600753。