ReachabilitySwift pod 在 Swift 2.3 中导致错误
ReachabilitySwift pod causes an error in Swift 2.3
我在项目中使用 ReachabilitySwift cocoapods。
Pod 文件:
pod 'ReachabilitySwift', '~> 2.4'
我安装了这个 pod 并导入了 ReachabilitySwift
文件。
现在,在创建实例时let reachability = Reachability()!
导致错误 无法调用不带参数的类型 'Reachability' 的初始值设定项。
我试过这个 但没用。
任何修复?
错误信息很清楚:
您必须使用带参数的初始化程序之一。
键入 let reachability = Reach
并找出 Xcode 在代码完成中的建议
(或阅读文档)。
问题是你使用 swift 2.3,对于这个版本你需要使用 ReachabilitySwift 和版本 2.4。但是在这个版本中 Reachability class 没有不带参数的构造函数。要解决此问题,您需要为此 class 创建扩展并添加不带参数的构造函数。
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([=10=]))
}) else { return nil }
self.init(reachabilityRef: ref)
}
}
我没有测试这段代码。它的代码可能包含一些错误。
已修复!
为 Swift 2.3
创建的可达性实例如下
let reachability = try! Reachability.init(hostname: "www.google.com")
我在项目中使用 ReachabilitySwift cocoapods。
Pod 文件:
pod 'ReachabilitySwift', '~> 2.4'
我安装了这个 pod 并导入了 ReachabilitySwift
文件。
现在,在创建实例时let reachability = Reachability()!
导致错误 无法调用不带参数的类型 'Reachability' 的初始值设定项。
我试过这个
任何修复?
错误信息很清楚:
您必须使用带参数的初始化程序之一。
键入 let reachability = Reach
并找出 Xcode 在代码完成中的建议
(或阅读文档)。
问题是你使用 swift 2.3,对于这个版本你需要使用 ReachabilitySwift 和版本 2.4。但是在这个版本中 Reachability class 没有不带参数的构造函数。要解决此问题,您需要为此 class 创建扩展并添加不带参数的构造函数。
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([=10=]))
}) else { return nil }
self.init(reachabilityRef: ref)
}
}
我没有测试这段代码。它的代码可能包含一些错误。
已修复!
为 Swift 2.3
创建的可达性实例如下let reachability = try! Reachability.init(hostname: "www.google.com")