2016-10-04 2 views
0

У меня есть tableView, и я использую Alamofire для отправки и получения запроса с сервера. , как вы можете видеть на картинке, в моем tableView Я отправляю несколько запросов в заголовке таблицы и cell по индексу 0,1. если я отправлю свой запрос в одну функцию, он будет слишком длинным, чтобы получить ответ и не сможет контролировать ошибку для каждого запроса. Каков наилучший способ справиться с этой проблемой?Alamofire multiple request

благодарит

ответ

0

Вы должны создать один запрос.

Итак, анализируя ваш запрос, вы должны настроить источник данных в массив, так каждая строка будет получать данные из одного пункта этого массива.

После этого вы обновите представление таблицы с помощью этого источника данных.

Например:

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 делегат метод вы должны сделать что-то вроде этого:

func tableView(_ tableView: UITableView, 
    cellForRowAt indexPath: IndexPath) -> UITableViewCell 
{ 
    let cell = tableView.dequeueReusableCell(... 
    dataForARow = self.source[indexPath.row] 
    cell.label.text = dataForARow["name"] //etc ... 
} 
0

несколько запросов в порядке просто отображать вашу ячейку таблицы или заголовок на основе ответа каждого запроса.

До тех пор, пока вы не получили ответ на любой запрос, установите высоту 0 для этой конкретной ячейки или заголовка.

Смежные вопросы