Я использую Alamofire для отправки HTTP-запроса в моем приложении. Я использую TabBarViewController, в ViewDidLoad первого представления я отправляю запрос. Также в ViewWillDisappear я отправляю другой запрос. Тем не менее, я обнаружил, что он ведет себя непредсказуемо, когда я меняю вкладки.Http-запрос с использованием 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)
}
Когда я переключая вкладки в нормальном случае, моя консоль будет распечатать
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})
Однако, когда я переключая вкладки достаточно быстро, моя консоль будет распечатать
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})
Любые идеи?
Как я могу сделать запрос на заказ? Я попытался использовать 'dispatch_group'. Однако, похоже, я не работаю. [link] (http://stackoverflow.com/questions/28100847/checking-for-multiple-asynchronous-responses-from-alamofire-and-swift) – WeiJay
вам нужно вызвать следующий запрос в вашем обработчике ответов. Или используйте делегат и запустите его в своем обработчике ответа, чтобы запустить следующий запрос. Вы также можете отменить свой запрос, если пользователь изменит вкладку http://stackoverflow.com/questions/26305707/how-to-pause-resume-cancel-my-download-request-in-alamofire – Sebi