我目前正在尝试在当前项目中实现可到达性。我在YouTube上观看了一个有效的教程,但不确定它是否正确。在可达性文档(https://github.com/ashleymills/Reachability.swift)中,它显示了两个示例,第一个是“示例-闭包”,我假设它是在viewDidLoad中完成的?

//declare this property where it won't go out of scope relative to your listener
let reachability = Reachability()!

reachability.whenReachable = { reachability in
    // this is called on a background thread, but UI updates must
    // be on the main thread, like this:
    DispatchQueue.main.async {
        if reachability.isReachableViaWiFi() {
            print("Reachable via WiFi")
        } else {
            print("Reachable via Cellular")
        }
    }
}
reachability.whenUnreachable = { reachability in
    // this is called on a background thread, but UI updates must
    // be on the main thread, like this:
    DispatchQueue.main.async {
        print("Not reachable")
    }
}

do {
    try reachability.startNotifier()
} catch {
    print("Unable to start notifier")
}


最后一个示例是“示例-通知”,这让我感到困惑,创建者说要在viewDidAppear中完成所有操作。如果我只在viewDidLoad内部执行所有操作,真的有很大的不同吗?它会改变任何结果吗?它目前可以正常工作,但我不确定是否正确,我不希望它将来影响我。任何帮助将是巨大的!谢谢。

最佳答案

这取决于您的需求。

如果要使用Reachability ...


...仅在此特定视图位于最前面,startNotifier()中的viewWillAppearstopNotifier()中的viewDidDisappear时才动态。
...在此特定视图中,只要该视图在startNotifier()中处于活动状态/已加载viewDidLoad
...在所有视图中全局将整个代码放入AppDelegate并发布通知。

关于swift - 目前困扰Swift可达性,我应该在viewDidLoad或viewDidAppear中完成所有代码吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42817365/

10-09 22:35