Wie man eine synchrone Anfrage mit Alamofire?

Ich versuche zu tun, eine synchrone Anfrage mit Alamofire. Habe ich auf Stackoverflow gefunden und diese Frage: einem asynchronen alamofire Anfrage synchron.

Sah ich, dass die akzeptierte Antwort verwendet completion zu machen Alamofire Anfrage synchron, aber ich kann nicht machen es zu arbeiten. Dies ist mein vereinfachter code:

func loadData(completion: (Bool)) -> (Int, [String], [String], [String]){

    Alamofire.request(url!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { response in

        switch(response.result) {
        case .success(_):
            if let JSON = response.result.value as! [[String : AnyObject]]!{
                 //Here I retrieve the data
            }

            completion(true)
            break

        case .failure(_):
            print("Error")
            completion(false)
            break  
        }
   }

   return (numberRows, nameArray, ageArray, birthdayArray)
}

Mit diesem code, den ich erhalte eine Fehlermeldung, wenn Sie versuchen, um completion(bool value). Die Fehlermeldung, die ich erhalte ist folgende:

Nicht aufrufen, Wert der nicht-Funktion Typ 'Bool'

Habe ich versucht, mit einer Menge von Beispielen mit Abschluss, um die Werte synchron (weil ich brauche zum abrufen der Daten vor zu zeigen, es auf einen Tisch und zur gleichen Zeit erhalten Sie die Anzahl der Zeilen der Tabelle), ohne Erfolg.

Wie kann ich die Abwicklung, um eine synchrone Reaktion?

Vielen Dank im Voraus!

  • Ich würde empfehlen, Sie bei der Umsetzung Ihrer eigenen Methode. Apple hat sehr stark davon abgeraten synchronen Netzwerk fordert. Werfen Sie einen Blick auf diese: stackoverflow.com/questions/31557688/...
  • github.com/Alamofire/Alamofire/issues/1147, Sie müssen finden Sie in diesem blog. Hoffe, dies hilft Ihnen.
  • Es scheint Sie nicht zu verstehen, wie asynchrone Methoden arbeiten, vor allem mit der Fertigstellung von Rückfragen. Stattdessen zwingen Sie synchrone Aufrufe, investieren, der Aufwand in das Verständnis der asynchronen Programmierung.
Schreibe einen Kommentar