簡體   English   中英

在Swift 3中使用Objective C typedef枚舉時出錯

[英]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時沒有命名空間; 名字NotReachableReachableViaWiFiReachableViaWWAN直接使用。 請注意,沒有前面的點( . )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM