У меня есть функция, которая включает в себя responseObject в обработчике завершения. На данный момент он возвращает тело json, когда я его вызываю, вместе с любыми ошибками.
Однако некоторые части API, которые я использую, не возвращают никаких данных в теле ответа, они просто возвращают ответ (200, 404 и т. Д.)
Я думал о добавлении ответа внутри возвращаемого пустого json-объекта, затем понял, что это было бы глупо, и, вероятно, было бы лучше, если бы я также вернул NSHTTPURLResponse
, но все, что я нашел, просто объясняет, как вернуть responseObject вместе с ошибкой ...
Это функция, возвращающая обработчик завершения:
func makePostRequest(url : String, params : AnyObject, completionHandler: (responseObject: NSHTTPURLResponse, JSON?, error: NSError?) -> ()) -> Request? {
println("params = \(params)")
return Alamofire.request(.POST, url, parameters: params as? [String : AnyObject], encoding: .JSON)
.responseJSON { (request, response, data, error) in completionHandler(
//This is wrong
response: response as? NSHTTPURLResponse,
responseObject:
{
println("Request is \(request)")
println("Response is \(response)")
println("Data is \(data)")
println("Error is \(error)")
//Append the response to this JSON object?
//
var json:JSON = [:]
if let anError = error
{
println(error)
}
else if let data: AnyObject = data
{
json = JSON(data)
}
//probably better to return the two...
//
return (response, json)
}(),
error: error
)
}
}
И вот как его используют:
networking.makePostRequest(documentUrl, params: docParams) { response, json, error in
println("response is: \(response)")
println("document json: \(json)")
println("document error: \(error)")
}
Я добавил биты ответа ко всем битам кода, я уверен, что это возможно? просто не знаю, как этого добиться ..
request
, а не егоrespose
, следуйте этому stackoverflow.com/questions/31608302/ - person Hamza Ansari   schedule 26.08.2015