あなたがダウンロードステータスインジケータバーを含めるためにいくつかのより多くのコードを導入する必要があります。現在、[NSData dataWithConentsOfURL:...]
でデータをダウンロードしています。代わりに、NSURLConnection
オブジェクトを使用してデータをダウンロードし、そのデータをMSMutableDataオブジェクトに蓄積し、それに従ってUIを更新するクラスを作成します。 ContentLength
HTTPヘッダーと- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
更新プログラムを使用して、ダウンロードの状態を判断できるはずです。
はここにいくつかの関連するメソッドです:
- (void) startDownload
{
downloadedData = [[NSMutableData alloc] init];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
}
- (void)connection:(NSURLConnection *)c didReceiveResponse:(NSURLResponse *)response
{
totalBytes = [response expectedContentLength];
}
// assume you have an NSMutableData instance variable named downloadedData
- (void)connection:(NSURLConnection *)c didReceiveData:(NSData *)data
{
[downloadedData appendData: data];
float proportionSoFar = (float)[downloadedData length]/(float)totalBytes;
// update UI with proportionSoFar
}
- (void)connection:(NSURLConnection *)c didFailWithError:(NSError *)error
{
[connection release];
connection = nil;
// handle failure
}
- (void)connectionDidFinishLoading:(NSURLConnection *)c
{
[connection release];
connection = nil;
// handle data upon success
}
は個人的に、私はこれを行うための最も簡単な方法は、上記の方法は、そのクラスで一般的なデータのダウンロードやインタフェースを行うために実装するクラスを作成することだと思います。
これは、必要なものを得るのに十分なはずです。