使用 Alamofire 从 API 获取响应

Posted

技术标签:

【中文标题】使用 Alamofire 从 API 获取响应【英文标题】:Getting response from API using Alamofire 【发布时间】:2018-05-21 20:22:38 【问题描述】:

我正在以将数据加载到表视图中,但是我的 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]()

【问题讨论】:

【参考方案1】:

您遇到的问题..“它在某些视图控制器中有效,但在其他视图控制器中无效”,是您在后台线程上重新加载 tableView 的结果。您必须像这样将其移动到主线程:

    DispatchQueue.main.async 
       self.tableView.reloadData()   
    

【讨论】:

以上是关于使用 Alamofire 从 API 获取响应的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire - 如何从 AFError 获取 API 错误

Alamofire 获取请求和 JSON 响应(Yelp API)

似乎无法使用 Alamofire 获取缓存的响应

使用 Flickr API 时出现 Alamofire AFError

使用 Alamofire 从 API 获取数据时出错

请求失败时从 AlamoFire 获取 JSON 响应