我创建了一个应用程序,用户可以下载一些资产。 我正在使用NSURLSession下载和跟踪UIProgressView的进度。
Folow my code:
func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
var progress = ("\(((totalBytesWritten * 100) / totalBytesExpectedToWrite))" as NSString).floatValue / 100
println("progress: \(progress)")
progressBar.setProgress(progress, animated: true)
progressLabel.text = "\(progresso)"
}
使用此代码,我可以在控制台中看到从0.0到1.0的值 但我的进度条视图仅在0.0,0.4,0.9,1.0处更新。或者类似的东西。
答案 0 :(得分:1)
我在Zaph的帮助下找到了答案。
func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
var progress = ("\(((totalBytesWritten * 100) / totalBytesExpectedToWrite))" as NSString).floatValue / 100
println("progress: \(progress)")
dispatch_async(dispatch_get_main_queue()) {
progressBar.setProgress(progress, animated: true)
}
}