我目前正在尝试在当前项目中实现可到达性。我在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()
中的viewWillAppear
和stopNotifier()
中的viewDidDisappear
时才动态。
...在此特定视图中,只要该视图在startNotifier()
中处于活动状态/已加载viewDidLoad
。
...在所有视图中全局将整个代码放入AppDelegate
并发布通知。
关于swift - 目前困扰Swift可达性,我应该在viewDidLoad或viewDidAppear中完成所有代码吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42817365/