gpt4 book ai didi

swift - 如果无法加载 URL,则取消加载 View Controller - Swift 4

转载 作者:行者123 更新时间:2023-11-28 13:47:45 24 4
gpt4 key购买 nike

当加载 View Controller 时,它必须通过 URL 获取 JSON 文件。如果互联网中断,我希望它取消加载 View Controller 。这是到目前为止的代码,我知道它在捕获中是错误的,但它让您了解我需要做什么。所以总的来说,我是否应该使用与 viewDidLoad() 不同的覆盖,因为它“确实”加载了?

 override func viewDidLoad() {        var jsonText = ""        if let url = URL(string: "http://thedomain.com/eventlistjson_r2.asp") {            do {                jsonText = try String( contentsOf: url,encoding: .utf8)            } catch {                // contents could not be loaded                print(error)                super.dismiss(animated: true)            }        } else {            // the URL was bad!            print("the URL was bad")        }}

最佳答案

如果您的 View Controller 没有数据就毫无意义,也许您应该考虑先尝试获取数据,然后再决定是否推送/显示 UIViewController。在这种情况下,无论谁正在实例化 View Controller ,都会首先尝试检索 JSON,并且只有在成功实例化并将数据传递给提到的 View Controller 的情况下。

第二个选项是你的 View Controller 自己检查数据,如果没有找到,在关闭之前向用户提供信息。你可以通过以下方式实现:

  1. 直接在您的 View Controller View 中显示信息(然后 viewDidLoad() 将是合适的地方)并让用户可以通过按后退按钮导航回来。
  2. 呈现 UIAlertController,您的 View Controller 会在按下警报确认按钮时自行关闭。

无论如何,在没有任何反馈的情况下加载和关闭 View Controller 会引发糟糕的用户体验或设计。

如果您向我们提供有关背后逻辑和预期行为的更多详细信息,也许我可以尝试提供更好的答案,但我相信上述任何一种方法都是一个好的开始。

关于swift - 如果无法加载 URL,则取消加载 View Controller - Swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55201216/

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