Ich verwende Alamofire, um HTTP-Anfrage in meiner App zu senden. Ich benutze einen TabBarViewController, in der ViewDidLoad der ersten Ansicht, ich sende eine Anfrage. Auch in ViewWillDisappear sende ich eine weitere Anfrage. Allerdings habe ich festgestellt, dass es sich unerwartet verhält, wenn ich die Tabs ändere.Http Anfrage mit Alamofire
func sendHttpCommand(parameter: NSDictionary) {
Alamofire.request(.GET, URL, parameters: (parameter as! [String: AnyObject]))
.response {
request, response, data, error in
print(request)
}
}
viewDidLoad() {
let dict: NSDictionary = ["value": 0]
sendHttpCommand(dict)
}
viewWillDisappear(animated: Bool) {
let dict: NSDictionary = ["value": 1]
sendHttpCommand(dict)
}
Wenn ich die Tabs wechseln, in Normalfall, meine Konsole
Optional(NSMutableURLRequest {URL: xxxxx/value=0})
Optional(NSMutableURLRequest {URL: xxxxx/value=1})
Optional(NSMutableURLRequest {URL: xxxxx/value=0})
Optional(NSMutableURLRequest {URL: xxxxx/value=1})
Optional(NSMutableURLRequest {URL: xxxxx/value=0})
Optional(NSMutableURLRequest {URL: xxxxx/value=1})
Optional(NSMutableURLRequest {URL: xxxxx/value=0})
Optional(NSMutableURLRequest {URL: xxxxx/value=1})
jedoch ausdrucken, wenn ich den Tabs schnell genug Schale, meine Konsole auszudrucken
Optional(NSMutableURLRequest {URL: xxxxx/value=0})
Optional(NSMutableURLRequest {URL: xxxxx/value=1})
Optional(NSMutableURLRequest {URL: xxxxx/value=1})
Optional(NSMutableURLRequest {URL: xxxxx/value=0})
Optional(NSMutableURLRequest {URL: xxxxx/value=0})
Optional(NSMutableURLRequest {URL: xxxxx/value=1})
Optional(NSMutableURLRequest {URL: xxxxx/value=1})
Optional(NSMutableURLRequest {URL: xxxxx/value=0})
Irgendwelche Ideen?
Wie kann ich die Anfrage in Auftrag geben? Ich habe versucht, 'dispatch_group' zu verwenden. Allerdings scheint ich nicht zu arbeiten. [link] (http://stackoverflow.com/questions/28100847/checking-for-multiple-asynchronous-response-from-alamofire-and-swift) – WeiJay
Sie müssen die nächste Anfrage in Ihrem Antworthandler aufrufen. Oder verwenden Sie einen Delegaten und feuern Sie ihn in Ihrem Antworthandler ab, um die nächste Anfrage zu starten. Sie können Ihre Anfrage auch abbrechen, wenn der Benutzer den Tab http://stackoverflow.com/questions/26305707/how-to-pause-resume-cancel-my-download-request-in-alamofire ändert – Sebi