0

現在、作成中のアプリに更新機能を実装しています。NSUrlConnection と NSURLConnectionDelegate を使用してファイルをダウンロードし、ユーザーのデバイスに保存します。

現時点では、1つの更新項目で複数のファイルがダウンロードされますが、この複数のファイルのダウンロードを1つのUIProgressViewを使用して表示したいと考えています。だから私の問題は、ダウンロードしようとしているすべてのファイルの予想されるコンテンツの長さを取得するにはどうすればよいですか? didReceiveResponse メソッドに渡される NSURLResponse オブジェクトの expectedContentLength を取得できることはわかっていますが、それはダウンロード中のファイルだけです。

どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

0

サーバーにある種の情報ファイルを用意して、実際に合計バイト数を取得するのはどうですか。最初にそれをロードしてから、ファイルをロードできます。次に、合計量から各ファイルのロード量を差し引くことができます。

もう 1 つの方法は、最初にすべてのファイルに接続し、応答を受け取った後に接続をキャンセルすることです。すべてのファイルの予想されるバイト数を追加し、それをファイルの読み込み中の合計進行状況を表示するための基礎として使用します。

#1の欠点:バイトを手動で追跡する必要があります。

#2の欠点:応答後にキャンセルされても、リクエストの量が2倍になります。

于 2012-05-09T12:03:10.633 に答える
0

この目的で広く使用されている ASIhttp オープンソース フレームワークを使用します。ここでは、progressview デリゲートを設定するだけで済みます。

これを試してみて ください http://allseeing-i.com/ASIHTTPRequest/

于 2012-05-09T12:06:40.700 に答える