簡體   English   中英

等待異步操作在Swift中完成

[英]Wait async operation to complete in Swift

我正在使用Alamofire在一個ViewController中處理大量數據,如下所示:

Alamofire.request(.GET, APIENDPOINT)
        .responseJSON { (_, _, jsondata, _) in
            // whole lotta json parsing and creating custom objects from json
    }

本質上,數據被捕獲在一個視圖控制器中,該控制器充當加載屏幕,通知用戶背景中發生了某些事情。 然后,當異步請求完成並且所有數據都已填充時,數據將顯示在另一個視圖控制器中。

實現這種行為的最佳方法是什么?

做到這一點,以便發送請求的ViewController一直等到數據已加載並解析為一些有用的模型組件。 然后,初始化另一個viewcontroller,從遠程傳遞解析后的數據,然后顯示/推送。

Alamofire.request(.GET, APIENDPOINT)
  .responseJSON { (_, _, jsondata, _) in
    // whole lotta json parsing and creating custom objects from json
  let anotherViewController = AnotherViewController()
  anotherViewController.dataFromRemote = parsedRemoteData
  self.showViewController(anotherViewController, animated:true)
}

好吧,我會使用手動segue。 像這樣:

Alamofire.request(.GET, APIENDPOINT)
    .responseJSON { (_, _, jsondata, _) in
        // whole lotta json parsing and creating custom objects from json
        self.performSegueWithIdentifier("realViewController", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
  if segue.identifier == "realViewController" {
    let vc:MyViewController = segue!.destinationViewController as MyViewController
    vc.setupWithData(self.myParsedData)
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM