Ios 有足够时间返回真实状态的访问可达性
我有一个可达性类,它是从我的VC代码中检查出来的,如下所示:Ios 有足够时间返回真实状态的访问可达性,ios,swift,reachability,Ios,Swift,Reachability,我有一个可达性类,它是从我的VC代码中检查出来的,如下所示: func setupReachability (hostName:String?, useClosures: Bool) { let reachability = hostName == nil ? Reachability() : Reachability(hostname: hostName!) self.reachability = reachability try! self.reachability
func setupReachability (hostName:String?, useClosures: Bool) {
let reachability = hostName == nil ? Reachability() : Reachability(hostname: hostName!)
self.reachability = reachability
try! self.reachability?.startNotifier()
if useClosures {
reachability?.whenReachable = { reachability in
DispatchQueue.main.async {
self.connected = true
print("Reachable....")
}
}
reachability?.whenUnreachable = { reachability in
DispatchQueue.main.async {
self.connected = false
print("Not Connected....")
}
}
} else {
NotificationCenter.default.addObserver(self, selector: Selector(("reachabilityChanged:")), name: ReachabilityChangedNotification, object: reachability)
}
}
这是从viewDidLoad中初始化的:
setupReachability(hostName: nil, useClosures: true)
print(self.connected)
我遇到的问题是,它总是返回false,我需要用足够的时间加载它,以便在此时返回true(如果它真的连接)。我正在努力找出我的setupReachability函数应该放在哪里,并对其进行初始化,以便可以从应用程序中的任何位置访问它,并返回其连接状态。我试着把它放在一个单独的类中,但似乎无法让它工作或访问连接状态。关于如何实现这一点的任何提示?您在调用setupReachability后立即打印self.connected,这样就不会给self.connected足够的时间由setupReachability中的闭包异步设置。它可能正在打印初始值。你在任何时候都可以“未连接”或“可到达”打印吗?是的,可到达打印几乎立即完成。您的权限没有足够的时间让setupReachability首先运行