SwiftyJSON 在完成时显示 progressHUD

SwiftyJSON showing progressHUD at completion

我在使用 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!)
}

您应该在后台线程中解析 API,否则它将在主线程中解析并阻塞 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()
        }
    }
 }