我在项目中使用ReachabilitySwift cocoapods。
广告文件:
pod 'ReachabilitySwift', '~> 2.4'
我安装了此pod并导入了ReachabilitySwift
文件。
现在,在创建实例let reachability = Reachability()!
时
导致错误无法为类型'可达性'调用初始值设定项没有争论。
我试过这个solution但是没有用。
任何修复?
答案 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")