Ios 点击单元格下载文件并在表格上下滚动时,应用程序崩溃
当我点击手机下载音频文件时,我有一个应用程序工作正常,但如果我点击手机,然后在完成下载之前尝试向上或向下滚动,它将崩溃Ios 点击单元格下载文件并在表格上下滚动时,应用程序崩溃,ios,swift,xcode,crash,tableview,Ios,Swift,Xcode,Crash,Tableview,当我点击手机下载音频文件时,我有一个应用程序工作正常,但如果我点击手机,然后在完成下载之前尝试向上或向下滚动,它将崩溃 func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) { let perc
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
let percentege = Float(totalBytesWritten) / Float(totalBytesExpectedToWrite)
DispatchQueue.main.async {
let cell = self.audioTableView.cellForRow(at: self.selectedCellIndex) as! AudioTableViewCell
cell.progressV.progress = percentege
}
}
首先,您应该避免强制展开,尝试使用guard语句
说到崩溃,看看您是否正在更新selectedCellIndex并在任何地方调用相同的下载任务。我怀疑selectedCellIndex设置的值不是预期值。从您的附加图像来看,selectedCellIndex似乎是一个可选变量。 所以,在使用它之前,你需要检查它是否为零,然后你应该移除力展开,以避免像这样的崩溃
DispatchQueue.main.async {
if self.selectedCellIndex != nil{
if let cell = self.audioTableView.cellForRow(at: self.selectedCellIndex) as? AudioTableViewCell{
cell.progressV.progress = percentege
}
}
}