4

AFNetworking フレームワーク経由でファイルをダウンロードするためにAFDownloadRequestOperationを使用しています。ダウンロード中にファイルを一時停止し、後で再開するたびに、setProgressiveDownloadProgressBlockは、ファイルが部分的にダウンロードされている間、 totalBytesReadの値をゼロから返し始めます。したがって、ファイル呼び出しの残りの割合を表示した後のブロックsetCompletionBlockWithSuccess

しかし、進行状況バーに適切な進行状況を表示したいので、ダウンロードされたファイルの適切な割合を取得するにはどうすればよいですか?

4

1 に答える 1

-1

これは私が使用するものです

 [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
            NSLog(@"Operation%i: bytesRead               : %d", i, bytesRead);
            NSLog(@"Operation%i: totalBytesRead          : %lld", i, totalBytesRead);
            NSLog(@"Operation%i: totalBytesExpectedToRead: %lld", i, totalBytesExpectedToRead);

            if (totalBytesExpectedToRead > 0)
            {
                 self.progressView.progress = (float)totalBytesRead / totalBytesExpectedToRead;
            }
        }];

totalBytesExpectedToRead が -1 になることがあるため、チェックを導入しました。これにより、progressview の進行状況のスムーズさが損なわれることがあります [また、hrader が予想される読み取りサイズとして -1 を返すことは、NSUrlconnection からの問題であることに注意してください]

(float)totalBytesRead / totalBytesExpectedToRead * 100パーセンテージを与える

于 2013-06-06T13:13:57.250 に答える