Bonjour à tous,
J’essaye de récupérer des données distantes avec Alamofire. En soit, la récupération fonctionne mais le passage de données n’a pas l’air de faire son boulot …
J’ai donc :
ViewController.swift
let _customerManager = CustomerManager()
_customerManager.getCustomers() { requestResponse, requestError in
print("ResponseObject : \(String(describing: requestResponse)); Error : \(String(describing: requestError))")
}
CustomerManager.swift
func getCustomers(completionHandler: @escaping (NSDictionary?, Error?) ->()) {
let apiManager = APIManager()
apiManager.call(method: HTTPMethod.get, request: "/customers?", parameters: nil, completionHandler: completionHandler)
}
Et enfin APIManager.swift
func call(method:HTTPMethod, request:String, parameters:Parameters?, completionHandler: @escaping (NSDictionary?, Error?) -> ()) {
let url = setRequest(request: request)
Alamofire.request(url, method: method, parameters: parameters, encoding: JSONEncoding.default, headers: APIManager.Constants.headers)
.validate()
.responseJSON { response in
switch response.result {
case .success (let value):
print(".success")
print("Value : \(value)")
completionHandler(value as? NSDictionary, nil)
case .failure (let error):
print(".failure")
completionHandler(nil, error)
}
}
}
Dans les print de l’APIManager, j’ai bien “.success” et la réponse JSON attendue dans value.
Par contre, dans mon viewController.swift, la réponse comme l’erreur sont à nil.
ResponseObject : nil; Error : nil
Vous auriez une idée ou une piste ?
Merci