Я хочу ограничить фоновый поток менее чем пятью каждый раз.Я должен вызывать API загрузки файлов одновременно, когда выбираю несколько файлов из галереи.Я должен вызывать один и тот же API несколько раз, т.е. если я выбрал 4 изображения, я должен вызывать один и тот же API четыре раза одновременно в фоновом потоке.Если число изображений больше 5, тогда мне нужно выбрать первые пять изображений и сделать пять запросов API, если любой из пяти запросов даст ответ, затем выберите еще одно изображение и добавьте его в фоновый поток.
То же самоеПроцесс должен выполняться до тех пор, пока все 20 запросов API изображений не дадут ответ.Я использую Alamofire для многоэтапной загрузки и шаблона проектирования MVVM.
Alamofire.upload(multipartFormData: { (multipartFormData) in
if imagepresent{
for i in 0..<imgparameters.count {
do {
let documentData = try Data(contentsOf: imgparameters[i]["fileUrl"] as! URL, options: .dataReadingMapped)
multipartFormData.append(documentData, withName: "attachments", fileName: "\(imgparameters[i]["fileName"] ?? "\(datestr)\(i).jpg")", mimeType: "\(imgparameters[i]["type"] ?? "image/jpg")")
} catch let error {
print(error.localizedDescription)
}
}
}
for (key, value) in parameters {
multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}}, to:requestURL,method : methodType,headers : headerss)
{ (result) in
switch result {
case .success(let upload, _, let streamFileURL):
self.uploadRequest = upload
upload.uploadProgress(closure: { (Progress) in
})
upload.responseJSON { response in
self.uploadRequest = nil
if (response.error == nil)
{
self.saveCookies(response: response)
}
self.handleResponse(response: response, completionBlockX: completionBlock
}
case .failure(let encodingError):
print(encodingError)
}
}
Спасибо за быстрые ответы.