Alamofire 多个请求

Posted

技术标签:

【中文标题】Alamofire 多个请求【英文标题】:Alamofire multiple request 【发布时间】:2016-10-04 07:25:56 【问题描述】:

我有tableView 并且我使用Alamofire 从服务器发送和获取请求。 正如您在图片中看到的,在我的tableView 中,我在表的标题和cell 在索引0,1 处发送多个请求。如果我在一个函数中发送我的请求,那么获得响应的时间会太长,并且无法控制每个请求的错误。处理这个问题的最佳方法是什么?

谢谢

【问题讨论】:

【参考方案1】:

您应该创建一个请求

因此,通过解析您的请求,您应该将数据源设置为数组,以便每一行从单个项目中获取数据 那个数组。

然后您将使用此数据源更新您的表格视图。

例如:

1) 为数据源(方法外)创建变量

var source : [Something]

2) 在单个请求中请求全部

Alamofire.request(_,_,_)
.responseJSON 
   // create a data source
   // this request should be a merge of your three request stated in your question
   // source can be set as [Something] for instance

3) 在您的 cellForRow 委托 method 中,您应该执行以下操作:

func tableView(_ tableView: UITableView, 
  cellForRowAt indexPath: IndexPath) -> UITableViewCell

   let cell = tableView.dequeueReusableCell( ... 
   dataForARow = self.source[indexPath.row]
   cell.label.text = dataForARow["name"] //etc ...

【讨论】:

【参考方案2】:

多个请求很好,只需根据每个请求的响应显示您的表格单元格或标题。

直到您没有收到任何请求的响应,将特定单元格或标题的高度设置为 0。

【讨论】:

以上是关于Alamofire 多个请求的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire 从多个请求中取消一个请求

Alamofire 多个请求

使用多个 Alamofire 链接请求填充 tableview

我如何使用 Alamofire 取消多个请求?

Swift:链接多个网络请求,Alamofire

多个网站的多个 Alamofire 请求的正确模型