iOS Swift:在TableView上显示异步数据

时间:2015-06-01 06:25:50

标签: ios uitableview swift uiviewcontroller

我有一个ViewController,其中包含TableView,现在TableView的数据是通过另一个类中异步的http调用来提取的。

class ViewController1: UIViewController, UITableViewDelegate, UITableViewDataSource {

    override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")

            MyHttpClass().getData()//INITIATING getting data asynchronously
...
}

MyHttpClass在几秒钟之后异步获取数据,但它没有ViewController的引用来移交数据(理想情况下是ViewController.tableView.reloadData - 我需要的是什么调用)

有没有更好的方法来解决这个问题?我如何得到参考。 ViewController获取数据时到MyHttp实例?有没有更好的方法来处理这个?

2 个答案:

答案 0 :(得分:3)

好吧,我建议您使用回调,添加输入

 func getData(callBack:()->()){
    //When finished
    callBack()
}

然后致电

MyHttpClass().getData() { () -> () in
        self.tableView.reloadData()
    }

答案 1 :(得分:2)

解决此问题的最佳方法是使{{1}}在完成异步加载数据时执行回调。在此回调中,您可以重新加载tableview。