0

私はダウンロードマネージャーに取り組んでおり、ダウンロード速度と残りの割合を示すラベルを更新しようとしています。

ただし、connection:didReceiveData内での更新が速すぎるため、performSelectorを使用してそのメソッドから遅延させることはできません(開始する前にそれだけ遅延させるだけです)。

ダウンロード速度や残りの割合などを更新するにはどうすればよいですか?

4

2 に答える 2

1

速度とパーセンテージを計算する方法を確認すると便利ですが、1つのアプローチは次のようになります。

  1. の2つの呼び出し間の経過時間(秒単位)を計算しますconnection:didReceiveData
  2. 現在受信しているデータのサイズを取得します(これを呼び出しますsize
  3. これまでにダウンロードされた合計データサイズ(それを呼びましょうdownloadedSize
  4. Speed = size / timeElapsed
  5. Percentage = downloadedSize / Total data size(あなたがそれを持っていると仮定して)
  6. 希望の単位に変換する
  7. ラベルを更新します(なぜここで遅らせる必要があるのか​​わかりません)
于 2012-04-18T11:27:46.613 に答える
1

表示をできるだけ早く更新したくない場合は、最後に更新した時刻をメモしておいてください。現在の時刻が、たとえば最後の更新から0.5秒以上経過していない場合は、このパスで更新しないでください。

于 2012-04-18T11:35:09.817 に答える