按需资源ODR完成/已下载标签的总文件大小

问题描述

我正在通过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