Как показать UIProgressView для загрузки в моем приложении? - PullRequest
0 голосов
/ 05 февраля 2010

Я хотел бы показать индикатор выполнения, показывающий, сколько файлов было загружено в моем приложении для iPhone. Я знаю, как настроить UIProgressView в IB и все такое. Но мне нужны данные, такие как размер файла в байтах, чтобы запустить его. Как мне интегрировать такую ​​функциональность с моим байтовым кодом загрузки (показан ниже)?

- (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);
}

1 Ответ

2 голосов
/ 05 февраля 2010

Вы можете отобразить побитовое представление прогресса, если переключитесь на использование библиотеки ASIHTTPRequest.

Я действительно рекомендую вам хотя бы проверить это. Это делает этот материал действительно простым на iPhone, и я использую его для всех своих приложений. Он будет выполнять синхронные и асинхронные соединения, обрабатывать файлы cookie и аутентификацию, а также упрощает составление запросов POST. Он также имеет встроенную сетевую очередь.

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

...