UIProgressbar в Cococa Touch - PullRequest
       16

UIProgressbar в Cococa Touch

1 голос
/ 02 декабря 2009

Я хочу отобразить UIProgressbar в зависимости от объема данных, загруженных с сервера.

Один из способов, который я реализовал, - это создание NSURLConnection и установка делегата. Соединение - (void): (NSURLConnection *) соединение didReceiveResponse: (NSURLResponse *) ответ дал мне ожидаемое содержание длина

А в соединении - (void): (NSURLConnection *) соединение didReceiveData: (NSData *) data Я получаю данные по частям каждый раз, пока все данные не будут загружены.

Но это не решило мою проблему.

Есть ли другой способ сделать это?

Все ваши предложения приветствуются.

Спасибо

1 Ответ

2 голосов
/ 02 декабря 2009

Если вы знаете ожидаемую длину контента, просто оставьте промежуточную сумму того, сколько вы получили, деленную на общую сумму, которую вы получите:

// 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;
}

Если вы получаете предупреждения о типах в подразделении, разыгрывайте каждое задолго до выполнения разделения.

...