2016-03-27 10 views
3

Ich gehe durch ein Tutorial und versuche, eine alamofire Anfrage an eine Eigenschaftsliste zu machen. In der Closure für die Liste der Antworteigenschaften verwende ich die Argumente (_, _, result). Allerdings gibt XCode mir den Fehler:Alamofire Response-Eigenschaftsliste

Cannot convert value of type '(_, _, _) -> Void' to expected argument type 'Response -> Void'

ich alamofire 3.0 Beta verwenden.

Antwort

1

Alamofire rechts ist nun in der Version 3.3 gemäß den Versionen im Repository, da die Version 3.0 es ein wenig zu ändern hat.

In Sie die Response Handler Ihre Schließung verwenden müssen wie folgt aussehen:

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"]) 
    .response { request, response, data, error in 
     print(request) 
     print(response) 
     print(data) 
     print(error) 
     } 

Und wenn Sie zum Beispiel verwenden die Response JSON Handler alles ist jetzt in der response wie in diesem Code eingekapselt:

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"]) 
    .responseJSON { response in 
     print(response.request) // original URL request 
     print(response.response) // URL response 
     print(response.data)  // server data 
     print(response.result) // result of response serialization 

     if let JSON = response.result.value { 
      print("JSON: \(JSON)") 
     } 
    } 

Oder Sie können diesen Code für eine einfachere Handhabung verwenden:

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"]) 
    .responseJSON { response in 
     switch(response.result) { 
     case .Success(let value): 
      if let JSON = value { 
       print("JSON: \(JSON)") 
      } 
     case .Failure(let error): 
      print(error.description)  
     } 
    } 

Ich hoffe das hilft dir.

1

dies funktioniert für mich, wenn nicht für Sie funktioniert, fügen Sie bitte Ihren Code zur Inspektion Problem.

var params : Dictionary<String,String> = ["key":"value"] 
Alamofire.request(.POST, "someURL" ,parameters: params).responseJSON() 
{ 
    response in 

    let data = JSON(response.result.value!) 

    if(data != nil) 
    { 
     var status = data["status"] as? String 
    } 
}