我的UIProgressView有一些问题,我不知道为什么它会崩溃。在我的视图控制器中,我的插座类似:
@IBOutlet weak var progressBar: UIProgressView!
,我再次检查它是否正确连接。 在我的viewDidLoad中,我将值重置为:
progressBar.progress = 0.0
然后,当我开始下载某些内容时,我会这样称呼它:
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
let written = byteFormatter.string(fromByteCount: totalBytesWritten)
print("print the written \(written)")
let expected = byteFormatter.string(fromByteCount: totalBytesExpectedToWrite)
self.progressBar.progress = Float(100 * bytesWritten/totalBytesExpectedToWrite)
}
但是它总是在此行崩溃:
self.progressBar.progress = Float(100 * bytesWritten/totalBytesExpectedToWrite)
有什么主意吗?
答案 0 :(得分:1)
尝试这种方式
DispatchQueue.main.async {
if self.progressBar != nil{
self.progressBar.progress = Float(100 * bytesWritten/totalBytesExpectedToWrite)
}
}