0

我正在开发一个下载管理器,我正在尝试更新指示下载速度和剩余百分比的标签。

它在 connection:didReceiveData 中更新得太快了,并且使用 performSelector 并从该方法延迟它不起作用(它只是在开始之前延迟了很长时间)。

我应该怎么做才能更新下载速度或剩余百分比等内容?

4

2 回答 2

1

如果您不想尽快更新显示,只需记下上次更新的时间。如果当前时间距离上次更新不到 0.5 秒,则不要在此通道上更新。

于 2012-04-18T11:35:09.817 回答
1

了解如何计算速度和百分比会很有帮助,但一种方法是:

  1. 计算两次调用之间经过的时间(以秒为单位)connection:didReceiveData
  2. 取当前接收数据的大小(姑且称之为size
  3. 到目前为止下载的总数据大小(让我们称之为downloadedSize
  4. Speed = size / timeElapsed
  5. Percentage = downloadedSize / Total data size(假设你有它)
  6. 转换为所需单位
  7. 更新标签(我不明白你为什么要在这里延迟)
于 2012-04-18T11:27:46.613 回答