ReachabilitySwift pod在Swift 2.3中导致错误

时间:2017-03-16 10:27:28

标签: ios xcode cocoapods reachability swift2.3

我在项目中使用ReachabilitySwift cocoapods

广告文件:

pod 'ReachabilitySwift', '~> 2.4'

我安装了此pod并导入了ReachabilitySwift文件。

现在,在创建实例let reachability = Reachability()!时 导致错误无法为类型'可达性'调用初始值设定项没有争论。

Screenshot

我试过这个solution但是没有用。

任何修复?

3 个答案:

答案 0 :(得分:1)

错误信息非常清楚:

您必须使用其中一个初始化者进行参数。

输入let reachability = Reach并找出Xcode在代码完成中的建议  (或阅读文件)。

答案 1 :(得分:1)

问题是您使用 swift 2.3 ,对于此版本,您需要使用版本 2.4 ReachabilitySwift 。但是在这个版本 Reachability 类中,没有参数的构造函数。要解决此问题,您需要为此类创建扩展并添加不带参数的构造函数。

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)
    }
}

我没有测试过这段代码。它的代码可能包含一些错误。

答案 2 :(得分:0)

得到了修复!

可以为Swift 2.3创建可达性实例

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