0

iPhone アプリでダウンロードされたファイルの量を示すプログレス バーを表示したいと考えています。IB で UIProgressView を設定する方法などを知っています。しかし、実行するにはファイル サイズ (バイト単位) などのデータが必要です。このような機能をバイト ダウンロード コード (以下に示す) と統合するにはどうすればよいですか?

- (void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)data
// A delegate method called by the NSURLConnection as data arrives.  We just 
// write the data to the file.
{
#pragma unused(theConnection)
    NSInteger       dataLength;
    const uint8_t * dataBytes;
    NSInteger       bytesWritten;
    NSInteger       bytesWrittenSoFar;

    assert(theConnection == self.connection);

    dataLength = [data length];
    dataBytes  = [data bytes];

    bytesWrittenSoFar = 0;
    do {
        bytesWritten = [self.fileStream write:&dataBytes[bytesWrittenSoFar] maxLength:dataLength - bytesWrittenSoFar];
        assert(bytesWritten != 0);
        if (bytesWritten == -1) {
            [self _stopReceiveWithStatus:@"File write error"];
            break;
        } else {
            bytesWrittenSoFar += bytesWritten;

        }
    } while (bytesWrittenSoFar != dataLength);
}
4

1 に答える 1

2

ASIHTTPRequestライブラリの使用に切り替えると、バイトごとの進行状況ビューを表示できます。

少なくともチェックすることをお勧めします。これにより、iPhoneでの作業が非常に簡単になり、すべてのアプリで使用しています。同期接続と非同期接続を実行し、Cookieと認証を処理し、POST要求の作成を非常に簡単にします。また、ネットワークキューが組み込まれています。

http://allseeing-i.com/ASIHTTPRequest/

于 2010-02-05T04:40:20.013 に答える