gpt4 book ai didi

ios - SwiftyJSON 在完成时显示 progressHUD

转载 作者:行者123 更新时间:2023-11-28 09:03:57 24 4
gpt4 key购买 nike

在使用 SwiftyJSON 解析 JSON 时,我很难正确显示 progressHUD,因为如果我在显示 progressHUD 后不等待几秒钟,应用程序似乎会崩溃。

如果我在进度条消失后等待几秒钟,它不会崩溃,这意味着我一定是在调度异步队列上做错了什么。我不确定解析 API 后 SwiftyJSON 的完成处理程序在哪里。

崩溃的原因是数组索引超出范围,因为我的数据尚未正确加载。

override func viewDidLoad() {
super.viewDidLoad()
MBProgressHUD.showHUDAddedTo(self.view, animated: true)
dispatch_async(dispatch_get_main_queue()) {
self.parseAPI()
MBProgressHUD.hideHUDForView(self.view, animated: true)
self.myTable.reloadData()
}
}
func parseAPI() {

let url = NSURL(string: "https://www.kimonolabs.com/api/e0uyfycg?apikey=7v9FHVAWKgAspMtVwoTNvIwzmWiPyj0F")
let dataFromNetwork = NSData(contentsOfURL: url!)
let json = JSON(data: dataFromNetwork!)
}

最佳答案

您应该在后台线程中解析 A​​PI,否则它将在主线程中解析并阻塞 UI,直到完成为止。

我查看了 MBProgressHUD 页面,它似乎是这样工作的:

 override func viewDidLoad() {
super.viewDidLoad()
MBProgressHUD.showHUDAddedTo(self.view, animated: true)
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0)) {
self.parseAPI()
dispatch_async(dispatch_get_main_queue()) {
MBProgressHUD.hideHUDForView(self.view, animated: true)
self.myTable.reloadData()
}
}
}

关于ios - SwiftyJSON 在完成时显示 progressHUD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31289406/

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