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

时间:2016-12-31 23:48:05

标签: ios swift 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函数并对其进行初始化,以便可以从应用程序的任何位置访问它并返回其连接状态。我已经尝试将它放在一个单独的类中,但似乎无法让它工作或访问连接状态。关于如何实现这一目标的任何提示?

0 个答案:

没有答案