问题描述
我正在通过ODR下载zip归档文件,并希望向用户显示进度和已完成/总文件大小(例如“已下载3 / 10MB”) 使用KVO,我设法观察了关联的 Progress 对象的 fractionCompleted 属性,因此我可以显示进度条。
代码如下:
let request = NSBundleResourceRequest(tags: [tag])
request.progress.observe(\.fractionCompleted,options: [.new,.old]) { [weak self] _,change in
guard let progress = change.newValue else { return }
// Use new progress value here
}
现在,要显示已完成/总文件大小(以字节为单位),我尝试访问 completedUnitCount 和 totalUnitCount ,它们碰巧总是具有值1(表示1个文件? )。
如何获取 completedUnitCount 和 totalUnitCount 的正确值?
解决方法
这对我来说也是一个惊喜。 我们已经通过使用 Progress 值的 fractionCompleted 属性设法解决了这个问题:
progress.fractionCompleted