1

サーバーからダウンロードしたデータ量に応じて UIProgressbar を表示したい。

私が実装した 1 つの方法は、NSURLConnection を作成してデリゲートを設定することです。- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response は私に expectedContentLengh を与えました

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data では、すべてのデータがダウンロードされるまで、毎回データを部分的に取得しています。

しかし、これは私の問題を解決しませんでした。

これを行う他の方法はありますか?

すべてのご提案をお待ちしております。

ありがとう

4

1 に答える 1

2

予想されるコンテンツの長さがわかっている場合は、これまでに受け取った現在の合計を、受け取る合計金額で割ってください。

// These should be properties of the delegate class
UIProgressView * progressView;
long long expected;
long long gotSoFar; 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    gotSoFar += data.length;
    progressView.progress = gotSofar / expected;
}

除算でタイプの警告が表示された場合は、除算を行う前にそれぞれの long long をキャストします。

于 2009-12-02T15:10:52.813 に答える