我有一个类方法,该方法进行异步API网络调用,进而调用转义的闭包,最后调用UITableView.reloadData()
。但是我收到一条错误消息,提示reloadData()
无法在此线程上执行,但是在通过调用countySites
设置了sortByDistance()
变量后,我需要它执行。如何获得reloadData()
在这个转义的闭包中执行?
我尝试将对reloadData()
的调用放在闭包中,但收到错误消息;
Main Thread Checker: UI API called on a background thread: -[UITableView reloadData]
PID: 3608, TID: 2897278, Thread name: (none), Queue name: NSOperationQueue 0x283d59d60 (QOS: UNSPECIFIED), QoS: 0
Backtrace:
distanceAPI.getDistanceURLSession( url: distanceAPIURL) { (distances) in
for siteIndex in 0 ..< self.countySites.count {
self.countySites[siteIndex].distance = distances![siteIndex]
}
self.countySites = self.sortByDistance(sites: self.countySites)
for site in self.countySites {
print(site.distance)
}
self.tableView.reloadData()
}
我收到上面显示的错误消息以及Xcode中报告的UITableView.reloadData() must be used from main thread only
。