Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 等待异步操作在Swift中完成_Ios_Xcode_Swift - Fatal编程技术网

Ios 等待异步操作在Swift中完成

Ios 等待异步操作在Swift中完成,ios,xcode,swift,Ios,Xcode,Swift,我在一个ViewController中处理大量数据,如下所示: Alamofire.request(.GET, APIENDPOINT) .responseJSON { (_, _, jsondata, _) in // whole lotta json parsing and creating custom objects from json } 基本上,数据是在一个视图控制器中抓取的,该视图控制器充当加载屏幕,通知用户后台正在进行某些操作。然

我在一个ViewController中处理大量数据,如下所示:

Alamofire.request(.GET, APIENDPOINT)
        .responseJSON { (_, _, jsondata, _) in
            // whole lotta json parsing and creating custom objects from json
    }
基本上,数据是在一个视图控制器中抓取的,该视图控制器充当加载屏幕,通知用户后台正在进行某些操作。然后,当异步请求完成并填充所有数据时,数据将显示在另一个视图控制器中


实现这种行为的最佳方法是什么?

这样做,发送请求的viewcontroller将等待数据加载并解析为一些有用的模型组件。然后,初始化另一个viewcontroller,从remote传递解析的数据,然后显示/推送它

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)
}

嗯,我会用手动的。大概是这样的:

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)
  }
}