file upload进度问题

我使用AFNetworking在表格视图单元格中上传单个文件。

上传工作正常。 但是,当我从视图中滚动我的单元格时,进度消失了,或者显示了不同的进度值,例如20%或50%,以及30%。

这是我的代码:

//Tableview Cell configure var cell : ChattingPhotoCell! if message.vendorType == .Receiver { //Receive Image message cell = tableView.dequeueReusableCell(withIdentifier: "ReceiveChattingPhotoCell") as! ChattingPhotoCell if cell == nil { cell = Bundle.main.loadNibNamed("ReceiveChattingPhotoCell", owner: self, options: nil)?[0] as! ChattingPhotoCell } cell.reloadDelegate = self cell.mDelegate = self cell.accessoryType = cell.isSelected ? .checkmark : .none cell.conficureImageCell(msg: message,indexPath: indexPath) } else { // Send Image Message cell = tableView.dequeueReusableCell(withIdentifier: "SenderChattingPhotoCell") as! ChattingPhotoCell if cell == nil { cell = Bundle.main.loadNibNamed("SenderChattingPhotoCell", owner: self, options: nil)?[0] as! ChattingPhotoCell } cell.reloadDelegate = self cell.mDelegate = self cell.accessoryType = cell.isSelected ? .checkmark : .none cell.conficureImageCell(msg: message,indexPath: indexPath) } //MyCell code func conficureImageCell(msg:Message,indexPath:IndexPath) { self.message = msg self.indexPath = indexPath if self.message.vendorType == .Sender { self.senderCellConfigure() } else { self.receiverCellConfigure() } } // sender configure methods func senderCellConfigure() { // Send Message if message.upload == 1 { self.btnRetry.isHidden = true }else{ self.btnRetry.isHidden = false } if message.is_send == 0 && !self.message.isUploadMedia && message.upload != 1 { let image = UIImage.init(contentsOfFile: documentDir.path) if image != nil { self.uploadImageToServer(ArrImage_Video: NSMutableArray.init(array: [image!]), strMsgType: "3") } } if self.message.isUploadMedia { self.progressView.isHidden = false self.btnRetry.isHidden = true } else { self.progressView.isHidden = true } } // MARK:- WebserviceCalling // Hiren func uploadImageToServer(ArrImage_Video:NSMutableArray,strMsgType: String){ self.message.isUploadMedia = true self.btnRetry.isHidden = true if self.str_media_url.isBlank { self.progressView.isHidden = false let accessToken = Singleton.sharedSingleton.retriveFromUserDefaults(key:Global.kLoggedInUserKey.AccessToken) print(accessToken!) let param: NSMutableDictionary = NSMutableDictionary() param.setValue(fromJID, forKey: "from_user_id") param.setValue(toJID, forKey: "to_user_id") param.setValue(strMsgType, forKey: "message_type") param.setValue("ABC", forKey: "from_user_name") param.setValue(UIDevice.current.model, forKey: "device_type") param.setValue("897584acac541d73d5f01f294fe944ddb35b6f67ea894e9ac29b03c7da69ca48", forKey: "device_token") param.setValue("jpeg", forKey: "file_type") param.setValue("135", forKey: "message_id") param.setValue(accessToken, forKey: "access_token") AFAPIMaster.sharedAPIMaster.PostMediatoServer_chat(params: param, arrMedia: ArrImage_Video, showLoader: false, enableInteraction: true, viewObj: self, onSuccess: { (DictResponse) in let dictResponse: NSDictionary = DictResponse as! NSDictionary let dictData: NSDictionary = dictResponse.object(forKey: "SuccessResponse") as! NSDictionary let media_url = dictData.object(forKey: "media_url") as? String ?? "" let media_id = dictData.object(forKey: "id") as? Int ?? 0 let thumb_image = dictData.object(forKey: "thumb_image") as? String ?? "" print(media_url) print(thumb_image) DispatchQueue.main.async { self.progressView.isHidden = true let onChatMaster = OnChatMasterTable() let messageObj = onChatMaster.getMessageFromDB(strMessageID: self.msgID, strFromUId: self.fromJID, strToUId: self.toJID) messageObj.media_url = media_url messageObj.thumb_url = thumb_image messageObj.upload = 1 messageObj.message = self.imageName messageObj.media_id = media_id self.str_media_ID = String(media_id) self.message.media_id = media_id DBHelper.sharedInstance.queue?.inDatabase() { db in DBHelper.sharedInstance.chilaxDB.open() let strUpdQuery = "UPDATE OnChat_Master SET upload = 1 , media_url = '\(media_url)', thumb_url = '\(thumb_image)' , media_id = \(media_id) where message_id = '\(messageObj.message_id)' AND from_user_id = '\(messageObj.from_user_id)' AND to_user_id = '\(messageObj.to_user_id)'" DBHelper.sharedInstance.chilaxDB.executeUpdate(strUpdQuery, withArgumentsIn: []) DBHelper.sharedInstance.chilaxDB.close() } //onChatMaster.updateMessageInDB(messsageObj: messageObj) self.sendMediaDataToSender(media_url: media_url, thumb_image: thumb_image,strMediaId:self.str_media_ID) self.message.isUploadMedia = false } }, displayProgress: { (progress) in DispatchQueue.main.async { let progressTask : Float = Float((progress as! Progress).fractionCompleted) print(progressTask) self.progressView.setProgress(progressTask, animated: true) } }, onFailure: { self.progressView.setProgress(0.0, animated: true) self.progressView.isHidden = true self.btnRetry.isHidden = false self.message.isUploadMedia = false }) } else { self.sendMediaDataToSender(media_url: str_media_url, thumb_image: str_thumb_url, strMediaId: str_media_ID) } } 

我使用表视图deque方法重用单元格。 在这个代码中有任何错误。 先谢谢了。