我想每次将后台线程限制为少于五个。从图库中选择一些文件时,我必须同时调用文件上传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)
}
}
感谢您的快速解答。