Wie man einen Wert von Alamofire zurückgibt

Mache ich url-Aufrufe, die durch eine API, die ich erstellt mit swift wie folgt:

class API {

  let apiEndPoint = "endpoint"
  let apiUrl:String!
  let consumerKey:String!
  let consumerSecret:String!

  var returnData = [:]

  init(){
    self.apiUrl = "https://myurl.com/"
    self.consumerKey = "my consumer key"
    self.consumerSecret = "my consumer secret"
  }

  func getOrders() -> NSDictionary{
    return makeCall("orders")
  }

  func makeCall(section:String) -> NSDictionary{

    let params = ["consumer_key":"key", "consumer_secret":"secret"]

    Alamofire.request(.GET, "\(self.apiUrl)/\(self.apiEndPoint + section)", parameters: params)
        .authenticate(user: self.consumerKey, password: self.consumerSecret)
        .responseJSON { (request, response, data, error) -> Void in
            println("error \(request)")
            self.returnData = data! as NSDictionary
    }
    return self.returnData
  }

}

Nenne ich diese API in mein UITableViewController zum Auffüllen der Tabelle mit SwiftyJSON Bibliothek. Aber mein returnData von der API, das ist immer leer. Es gibt kein problem mit Alomofire Anrufe, wie kann ich erfolgreich abrufen Wert. Mein problem ist, wie soll ich tragen diese data über meinen Tisch view controller?

var api = API()
api.getOrders()
println(api.returnData) // returnData is empty
Kommentar zu dem Problem
In keinem Zusammenhang zu deiner ursprünglichen Frage, ich bin überhaupt nicht zuversichtlich, wie bist du mit dem consumer-key und das secret (bist du mit dem Alamofire authenticate - Prozess, aber dabei etwas merkwürdiges mit den Parametern). Es ist wohl eine oder die andere. Es ist eine Funktion Ihres web-service-API, so können wir nicht beantworten, hier, aber dies ist sicherlich nicht korrekt. Kommentarautor: Rob
Es ist, wie die service-API, die ich verwenden soll. Dokumentation schlägt vor, die übergabe der Schlüssel und das Geheimnis, wie Benutzername und Kennwort für die basic-Authentifizierung. Kommentarautor: u54r
OK, wenn es wirklich die Standardauthentifizierung verwendet, dann verwenden Sie die authenticate Funktion, aber was ist dann der Zweck der params Wörterbuch? Hey, was auch immer funktioniert, aber es scheint neugierig zu machen, sowohl authenticate übergeben und auth-details wieder, die als Parameter an die Abfrage... Kommentarautor: Rob

InformationsquelleAutor der Frage u54r | 2014-12-09

Schreibe einen Kommentar