Я просмотрел все переполнение стека и другие веб-ресурсы о том, как обрабатывать запрос async PARSE и хранить эти данные в массиве. Затем я использую этот массив для заполнения таблицы в другом контроллере представления. Структура кода выглядит следующим образом:Реализация GCD не работает с запросом PARSE (Swift)
AppController.swift:
public var BuisnessNames = [NSString]()
[...]
public func updateFeedsMap(){
var query : PFQuery = PFUser.query()!
var objects : [AnyObject]?
var counter = 0
query.whereKey("isProprietor", equalTo: true)
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
if error == nil {
// The find succeeded.
println("Successfully retrieved \(objects!.count) scores.")
// Do something with the found objects
if let objects = objects as? [PFObject] {
for object in objects {
dispatch_sync(dispatch_get_main_queue()) {
self.BuisnessNames.append(object ["BusinessName"] as! NSString)
}
}
}
} else {
// Log details of the failure
println("Error: \(error!) \(error!.userInfo!)")
}
}
}
}
RootVC.swift (наследуется от AppController):
override func viewDidLoad() {
if isUserLoggedIn() {
dispatch_async(dispatch_get_main_queue()){
self.updateFeedsMap()
}
}
RootVC перетекает в третий контроллер представления в ViewDidAppear(), который использует Массив BuisnessNames для заполнения таблицы. Однако в настоящее время я не получаю никаких данных до таблицы. Я потратил много часов на это, и у меня нет идей, пожалуйста, помогите! Спасибо.
Спасибо, Лео, глядя сейчас в CallBacks ... –
Я пробовал различные виды контроля GDC и обертывал разные разделы кодов в рассылке async/sync. Я даже пытался группировать рассылки и использовать обратные вызовы завершения ... еще не удалось это исправить. Не могли бы вы предложить, как бы вы это сделали? –
@ Racer-X Я обновлю некоторый простой код – Leo