UIProgressView在迅速显示消息时崩溃是线程6:致命错误:在展开可选值时意外发现nil

时间:2018-07-04 14:22:42

标签: ios swift uiprogressview

我的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)

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

尝试这种方式

DispatchQueue.main.async {
    if self.progressBar != nil{
       self.progressBar.progress = Float(100 * bytesWritten/totalBytesExpectedToWrite)
     }
}