У меня есть массив со списком строк, и я должен вызвать API для его перевода. в моем текущем случае ответ API приходит после завершения цикла for, мне нужно вызывать API один за другим. Я имею в виду, что мне нужно дождаться ответа, чтобы отправить другую строку.
Вот мой код
var stringList = ["cat","dog","cup","glass","land"]
for k in 0..< stringList.count {
self.SetTranslateLetters(WORD: stringList[k], LANG: "AR", completionHandler: { (true) in
})
}
func SetTranslateLetters(WORD: String, LANG:String, completionHandler:@escaping (Bool) -> ()){
let param: [String:AnyObject] = [
"word": WORD as AnyObject,
"language":LANG as AnyObject
]
let queue = DispatchQueue(label: "com.cnoon.manager-response-queue",
qos: .userInitiated,
attributes:.concurrent)
Alamofire.request(url, method: .post,
parameters: param,
encoding: JSONEncoding.default,
headers: ["Content-Type":"application/json; charset=UTF-8"]).responseJSON(queue: queue, options: .allowFragments,
completionHandler: { (response:DataResponse<Any>) in
switch(response.result) {
case .success(let value):
print("done")
let json_ = JSON(value)
// print(json_)
let getCoun = json_["TranslateResult"]
// print(getCoun)
break
case .failure(_):
print(response.result.error!)
if response.result.error?._code == NSURLErrorTimedOut{
//TODO: Show Alert view on netwok connection.
completionHandler(true)
}
break
}
})
}