2016-03-27 2 views
3

Я изучаю учебник и пытаюсь сделать запрос alamofire к списку свойств. В закрытии списка свойств ответа я использую аргументы (_, _, result). Однако, XCode дает мне ошибку:Alamofire Response Property List

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

Я использую alamofire 3.0 беты.

ответ

1

Alamofire сейчас находится в версии 3.3 в соответствии с выпусками в хранилище, начиная с версии 3.0, он немного изменить.

В использовании Response Handler вашего закрытия должны выглядеть следующим образом:

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

И если вы используете, например, Response JSON Handler все инкапсулируется сейчас в response как в этом коде:

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)") 
     } 
    } 

Или вы можете использовать этот код для более удобного обращения:

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)  
     } 
    } 

Надеюсь, это поможет вам.

1

это работает для меня, если не работает для вас, вставьте свой код, чтобы проверить проблему.

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 
    } 
} 
Смежные вопросы