0
我有一個tableView包含數組的元素。這個數組由PFQuery填充。查詢後,該數組按多個條件排序。我希望所有這些都發生在viewDidLoad之前,它們出現在tableView中。但是,我可以讓它填充tableView的唯一方法是,如果它發生在findObjectsInBackground閉包中。如果它發生在那之後,那麼查詢沒有完成,因此數組是空的。我曾嘗試在調度隊列中查看各種資料,似乎是需要這些任務被連續執行,但我無法弄清楚如何執行。這是相關的代碼。重載tableView後解析查詢(串行隊列?)
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
}
}
}
}