如何解决基于 Array<>.count 链接多个 Alamofire 请求
我正在尝试按顺序下载一些小图像。 首先,我从服务器下载一个 JSON,然后将它解析为一个对象数组。 从那时起,我需要为该数组中的每个对象下载一个图像。 由于我尝试在 for 循环中执行此操作,因此 dispatchQueue.main.async 被 array.count 调用了多次,显然,我试图避免这种情况。 你能提出最好的方法吗?
for partner in DataSingleton.sharedInstance.returnPartners()
{
let downloadURL: String = ("\(DataSingleton.sharedInstance.returnGetPartnerslogosRoute())/\(partner.logo!)")
let destination: DownloadRequest.Destination = { _,_ in
var documentsURL = FileManager.default.urls(for: .documentDirectory,in: .userDomainMask)[0]
documentsURL.appendpathComponent(partner.logo)
return (documentsURL,[.removePrevIoUsFile])
}
AF.download(downloadURL,to: destination).response { response in
print(response)
switch response.result
{
case .success(let json):
print("SERVER RESPONSE OK")
if( ((response.response?.statusCode)! == 200) ||
((response.response?.statusCode)! == 201) )
{
print("SERVER RESPONSE OK! Code \(String(describing: response.response?.statusCode))")
self.downloadPartnerslogosstatus = true
}
else
{
print("SERVER RESPONSE NOK! Code \(String(describing: response.response?.statusCode))")
self.downloadPartnerslogosstatus = false
}
case .failure(let error):
print("SERVER RESPONSE NOK \(error)")
self.downloadPartnerslogosstatus = false
}
dispatchQueue.main.async
{
if(self.downloadPartnerslogosstatus == true)
{
print("Feedbackul a fost trimis cu succes!")
self.downloadPartnerslogosstatus = true
completionHandler(self.downloadPartnerslogosstatus)
}
else
{
print("NOK ERROR")
self.downloadPartnerslogosstatus = false
completionHandler(self.downloadPartnerslogosstatus)
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。