此应用程序正在从后台线程修改autolayout引擎 - ios9

时间:2015-11-15 02:41:56

标签: ios swift uitableview ios9 xcode7

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内,因为我必须等到获取数据。如何在不收到此错误的情况下重新加载表格视图?

1 个答案:

答案 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()
    }
}

始终通过后台线程调用的代码触摸界面任何时间。除了在主线程上,你绝不能永远不会永远不会触摸界面。