У меня есть APIManager класс одноплодной и имеют функцию, чтобы получить данные с сервера, как это:Swift 3: Alamorefire блок UI
func scanOrder(order: String, completion:@escaping Handler){
let url = K.API_URL + "/api/containers/picking/" + order
Alamofire.request(url, method: .get, parameters: nil, encoding: URLEncoding.default, headers: getHeader()).responseJSON { (response) in
DispatchQueue.main.async {
completion(response)
}
}
}
и я называю эту функцию в другом классе, как это:
apiMan.scanOrder(order: tfCode.text!) { (response) in
...
}
, ожидая ответа сервера, мой пользовательский интерфейс заблокирован. Я попытался включить вызов запроса alamofire в DispatchQueue.global(). Async, но он все еще блокирует пользовательский интерфейс.
Пожалуйста, помогите!
Показать больше кода. Что находится внутри вашего «завершения»? – Sulthan
apiMan.scanOrder (порядок: tfCode.text) {(ответ) в печати (ответ) если response.result.isSuccess == истинный { пусть orderTmp = Mapper() .map (JSON: response.result. значение как! Словарь)! как порядок , если пусть тзд = orderTmp.message { self.alert (сообщение: MSG) } еще { self.order = orderTmp self.showOrderDetails() } } еще { self.alert (сообщение: " Ошибка ") } } –