let url = NSURL(string: "http://api.mdec.club:3500/news?")
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {
(data, response, error) in
self.jsonResult = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSMutableArray
self.tableView.reloadData()
}
task.resume()
我不明白为什么我会收到此错误。我必须将reloadData()
方法放在task
内,因为我必须等到获取数据。如何在不收到此错误的情况下重新加载表格视图?
答案 0 :(得分:1)
如何在不收到此错误的情况下重新加载表格视图?
你走出主线程,以便拨打reloadData
,如下所示:
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {
(data, response, error) in
self.jsonResult = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSMutableArray
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
}
始终通过后台线程调用的代码触摸界面任何时间。除了在主线程上,你绝不能永远不会永远不会触摸界面。