У меня есть tableView, который содержит элементы массива. Этот массив заполняется PFQuery. После запроса массив сортируется по нескольким критериям. Я хочу, чтобы все это произошло в viewDidLoad, прежде чем они появятся в tableView. Тем не менее, единственный способ заставить его заполнить таблицуView - это, если это происходит с закрытием findObjectsInBackground. Если это произойдет после этого, запрос не завершится, и поэтому массив пуст. Я попытался посмотреть различные материалы на очереди отправки, и мне кажется, что эти задачи нужно выполнять последовательно, но я не могу понять, как это сделать. Вот соответствующий код.reload tableView AFTER Запрос запроса (последовательная очередь?)
override func viewDidLoad() {
super.viewDidLoad()
var getBuddiesQuery = PFQuery(className: "followers")
getBuddiesQuery.whereKey("userHasBuddy", equalTo: "yes")
getBuddiesQuery.findObjectsInBackgroundWithBlock {
(objects, error) -> Void in
if error == nil {
self.buddies.removeAll(keepCapacity: true)
for object in objects! {
self.buddies.append(object["buddy"] as! String)
//MULTIPLE SORTS OF ARRAY
self.tableView.reloadData()
//IF RELOAD IS HERE THEN IT LOOKS VERY CHOPPY BECAUSE OF SORTS BUT SORTS CAN ONLY HAPPEN HERE FOR SAME REASON - BECAUSE OTHERWISE THE ARRAY HAS NOT BEEN POPULATED
}
}
}
}