点击单元格以下载文件并向上或向下滚动表格时,应用崩溃

问题描述

当我点击一个单元格以下载音频文件时,我有一个运行良好的应用程序,但是如果我点击一个单元格,请尝试向上或向下滚动以完成下载,否则它将崩溃!

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
        
    }
    
}

the error

解决方法

看起来好像是您的附加图像,selectedCellIndex是一个可选变量。 因此,在使用此功能之前,您需要检查它是否为零,然后应去除外力以免发生此类崩溃

DispatchQueue.main.async {
    if self.selectedCellIndex != nil{
        if let cell = self.audioTableView.cellForRow(at: self.selectedCellIndex) as? AudioTableViewCell{
            cell.progressV.progress = percentege
        }

    }   
}
,

首先,应避免强行打开包装,请尝试使用警卫声明。

谈论崩溃,看看是否要更新selectedCellIndex并在任何地方调用相同的下载任务。我怀疑selectedCellIndex设置为某些意外值。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...