[英]Error using Objective C typedef enum in Swift 3
我嘗試使用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) {
...
}
}
但是我得到了錯誤:
類型“ NetworkStatus”沒有成員“ NotReachable”
我究竟做錯了什么? 如何在Swift中使用Objective-C enum
?
如果按如下方式定義枚舉,則可以通過NetworkStatus.NotReachable
等訪問它:
typedef NS_ENUM(NSInteger, NetworkStatus) {
NotReachable = 0,
ReachableViaWiFi,
ReachableViaWWAN
};
typedef enum : NSInteger {
NotReachable = 0,
ReachableViaWiFi,
ReachableViaWWAN
} NetworkStatus;
這是一個“普通”的C枚舉。 因此,它進入Swift時沒有命名空間; 名字NotReachable
, ReachableViaWiFi
和ReachableViaWWAN
可直接使用。 請注意,沒有前面的點( .
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.