如何在下载JSON数据后重新加载tableview的数据

new*_*ike 1 uitableview ios swift

我所说的getPrizesDatafunc viewDidLoad()

reload在完成下载JSON数据后调用.

但它没有在tableview中刷新我的细胞,

怎么解决?谢谢

@IBOutlet var invoice: UITableView!

func getPrizesData()-> Void{
    let url = NSURL(string: "http://localhost:3002/invoices.json")
    let sharedSession = NSURLSession.sharedSession()
    let downloadTask: NSURLSessionDownloadTask =
    sharedSession.downloadTaskWithURL(url,
        completionHandler: {(location: NSURL!, response: NSURLResponse!, error: NSError!)->Void in
            if (error == nil){
                let dataObject = NSData(contentsOfURL: location)
                if let prizes = NSJSONSerialization.JSONObjectWithData(dataObject, options: .MutableLeaves, error: nil) as? NSArray {
                    let prizesDictionary = prizes[0] as NSDictionary
                    let toPrizesArray = prizesDictionary["to_prizes"] as NSArray
                    self.items = toPrizesArray as [AnyObject] as [String]
                    self.invoice.reloadData()
                }
                else {
                    println("error")
                }
            }else{

                println(error)
            }

    })
    downloadTask.resume()
}
Run Code Online (Sandbox Code Playgroud)

Kir*_*ins 6

数据在非主线程上下载.UI必须仅从主线程更新.

dispatch_async(dispatch_get_main_queue()) {
    self.invoice.reloadData()
}
Run Code Online (Sandbox Code Playgroud)