我正在使用Alamofire从API获取响应以将数据加载到tableviews中但是我的alamofire函数可以工作但只在某些视图控制器中我不明白我做错了什么。我知道它的alamofire功能,因为我使用调试器来跟踪我的数据和代码,但我看到了函数永远不会超过第一行功能的问题。
Alamofire功能
Alamofire.request("\(baseURL)").responseJSON { response in
if let dict = response.result.value as? [[String: Any]] {
for obj in dict {
let latest = LatestNews(getLatest: obj)
self.moreNews.append(latest)
}
}
self.tableView.reloadData()
}
数组和模型类
var latestNews: LatestNews!
var moreNews = [LatestNews]()
答案 0 :(得分:1)
您遇到的问题......“它在某些视图控制器中有效,但在其他视图控制器中无效”,是您在后台线程上重新加载tableView的结果。您必须将其移动到主线程,如下所示:
DispatchQueue.main.async {
self.tableView.reloadData()
}