2016-04-17 3 views
-1

Я использую фоновый поток для получения моих данных из сети и основного потока для представления своих клеток:Почему мои ячейки не загружаются одновременно?

dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0), { 
    let _ = self.http.getInfo() { (result) in 
     self.cellsArray = result 

     dispatch_async(dispatch_get_main_queue(), { 
      self.tableView.reloadData() 
     }) 
     completion(completed: true) 
    } 
}) 

где self.http.getInfo является NSURLSession.sharedSession().dataTaskWithRequest метода спуская сеть Infos.

И когда я запускаю мое приложение мои клетки начинают показывать отдельно: первый появляется, в втором появляется следующие один, в течение 2 секунд следующий и т.д.

Почему они не появляются в том же время? А также из-за использования фона и основного потока мой UITableView перескакивает, когда я реализую бесконечный прокрутки и добавляю новые ячейки в существующий массив ячеек.

Как это исправить?

ответ

0

напишите self.tableView.reloadData() этот оператор в обработчике завершения NSURLSession.sharedSession().dataTaskWithRequest.

+0

но как я могу обновить tableView из другого файла? –

+0

другой файл означает? – Lion

+0

У меня есть 2 файла: Network и UITableViewController. В моем сетевом файле я делаю свой 'dataTaskWithRequest' и отображаю его в своем UITableViewController. Я попытался перезагрузить мой TableView из сетевого файла через NSNotificationCenter, но он по-прежнему не работает и прыгает –

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