gpt4 book ai didi

swift - 目前正在搞乱 Swift Reachability,我应该在 viewDidLoad 还是 viewDidAppear 中执行所有代码?

转载 作者:行者123 更新时间:2023-11-30 12:36:21 29 4
gpt4 key购买 nike

我目前正在尝试将可达性实现到我当前的项目中。我按照 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 中执行所有操作,真的有很大区别吗?它会改变任何事情的结果吗?它目前工作正常,但我不确定它是否正确,我不希望它将来影响我。任何帮助都会很棒!谢谢。

最佳答案

这取决于您的需求。

如果您想使用可达性...

  • ...仅当此特定 View 位于最前面时动态,viewWillAppear 中的 startNotifier()stopNotifier() viewDidDisappear

  • ...在此特定 View 中,只要该 View 处于事件状态/已在 viewDidLoad 中加载 startNotifier()

  • ...在所有 View 中全局地将整个代码放入 AppDelegate 中并发布通知。

关于swift - 目前正在搞乱 Swift Reachability,我应该在 viewDidLoad 还是 viewDidAppear 中执行所有代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42817365/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com