ios - reload tableView AFTER Parse query (serial queue?) -


i have tableview contains elements of array. array populated pfquery. after query, array sorted multiple criteria. want of happen in viewdidload before show in tableview. however, way can populate tableview if happens in findobjectsinbackground closure. if happens after query hasn't completed , therefore array empty. have tried looking @ various materials on dispatch queues , seems need these tasks executed serially cannot figure out how it. here relevant code.

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)              object in objects! {                  self.buddies.append(object["buddy"] as! string)                  //multiple sorts of array                  self.tableview.reloaddata()                  //if reload here looks choppy because of sorts sorts can happen here same reason - because otherwise array has not been populated             }         }     } } 

instead of reloading table each element appending, go through elements, append them buddies array, , reloaddata. code like:

getbuddiesquery.findobjectsinbackgroundwithblock {     (objects, error) -> void in     if error == nil {          self.buddies.removeall(keepcapacity: true)          object in objects! {             self.buddies.append(object["buddy"] as! string)         }         self.tableview.reloaddata()     } }