2017-03-16 91 views
0

我在項目中使用ReachabilitySwift cocoapodsReachabilitySwift pod在Swift中導致錯誤2.3

波德文件:

pod 'ReachabilitySwift', '~> 2.4' 

我安裝這種吊艙和進口ReachabilitySwift文件。

現在,創建實例時let reachability = Reachability()! 導致錯誤類型「可達性」不帶任何參數無法調用初始化。

Screenshot

我想這solution,但沒有奏效。

是否有修復?

+0

你能告訴你如何在POD文件應用ReachabilitySwift。你有限制它的版本嗎? – Sergey

+0

@謝謝:檢查更新的問題 –

+0

請看我的回答,我已經找到了我的問題的答案。 – Sergey

回答

0

得到修復!要創建

可達實例作爲遵循雨燕2.3

let reachability = try! Reachability.init(hostname: "www.google.com") 
1

的錯誤信息是很清楚的:

你必須使用取一個參數初始化之一。

類型let reachability = Reach並找出Xcode建議代碼完成
(或閱讀文檔)。

1

問題是你使用SWIFT 2.3,這個版本中,你需要使用ReachabilitySwift與版本2.4。但在這個版本可達性類不具有沒有參數的構造函數。爲了解決這個問題,你需要爲這個類創建擴展,並添加不帶參數的構造函數。

extansion Reachability{ 
    public convenience init() { 

     var zeroAddress = sockaddr() 
     zeroAddress.sa_len = UInt8(MemoryLayout<sockaddr>.size) 
     zeroAddress.sa_family = sa_family_t(AF_INET) 

     guard let ref: SCNetworkReachability = withUnsafePointer(to: &zeroAddress, { 
      SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0)) 
     }) else { return nil } 

     self.init(reachabilityRef: ref) 
    } 
} 

我沒有測試此代碼。它的代碼可能包含一些錯誤。