Ho un Swift classe 2.0 ApiManager usando Alamofire 2.0 con il seguente init: la funzioneAlamofire Manager con Swift 2.0 ottenendo Annullato
var manager:Manager
init() {
var defaultHeaders = Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders ?? [:]
defaultHeaders["Authorization"] = "Bearer \(UserAccount.sharedInstance.token)"
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.HTTPAdditionalHeaders = defaultHeaders
manager = Alamofire.Manager(configuration: configuration)
}
Esempio:
func getMe(completion:(jsonObject: NSDictionary) ->()) {
manager.request(.GET, Constants.apiURL + "me").responseJSON { request, response, result in
print(self.manager) //THIS LINE FIXES IT
switch result {
case .Success(let json):
completion(jsonObject: json as! NSDictionary)
case .Failure(let data, let error):
print("Error: \(__FUNCTION__)\n", data, error)
}
}
}
L'errore che ricevo:
Error Domain=NSURLErrorDomain Code=-999 "cancelled"
Sembra che la richiesta venga annullata perché il gestore è stato deallocato. L'aggiunta dell'istruzione di stampa impedisce che il gestore venga deallocato e quindi funziona perfettamente. Ma sto cercando di trovare una soluzione migliore.
Qualsiasi aiuto sarebbe apprezzato!
Grazie ! Questo ha risolto il mio problema. Ho appena aggiunto la riga 'static let sharedInstance = ApiManager()' alla mia classe, quindi l'ho chiamata proprio come hai detto tu. Apprezzo davvero il tuo aiuto! – Groarus
@Groarus, hai usato 'static let sharedInstance = ApiManager()' o 'static let sharedInstance = ApiManager' ?. Il primo genera un errore. –