首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReachabilitySwift pod导致SWIFT2.3中的一个错误

ReachabilitySwift pod导致SWIFT2.3中的一个错误
EN

Stack Overflow用户
提问于 2017-03-16 10:27:28
回答 3查看 201关注 0票数 0

我在项目中使用ReachabilitySwift cocoapods

Pod文件:

代码语言:javascript
复制
pod 'ReachabilitySwift', '~> 2.4'

我安装了这个吊舱并导入了ReachabilitySwift文件。

现在,当创建实例时,let reachability = Reachability()!会导致错误,不能在没有参数的情况下调用类型“Reachability”的初始化程序。

我试过这个解决方案,但没有成功。

有什么解决办法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-16 12:11:33

修好了!

为Swift 2.3创建的可达实例如下所示

代码语言:javascript
复制
let reachability = try! Reachability.init(hostname: "www.google.com")
票数 0
EN

Stack Overflow用户

发布于 2017-03-16 10:33:31

错误信息非常清楚:

您必须使用带参数的初始化器之一.

键入let reachability = Reach并找出Xcode在代码完成中的建议

(或阅读文件)。

票数 1
EN

Stack Overflow用户

发布于 2017-03-16 10:57:26

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

代码语言:javascript
复制
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)
    }
}

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42831357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档