Ios 有足够时间返回真实状态的访问可达性

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

我有一个可达性类,它是从我的VC代码中检查出来的,如下所示:

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首先运行