당신은 다운로드 상태 표시 줄을 포함하는 좀 더 코드를 도입해야합니다. 현재 [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
}
가 개인적으로, 나는이 작업을 수행하는 가장 간단한 방법은 위의 방법은 그 클래스와 일반 데이터 다운로드와 인터페이스를 할 구현하는 클래스를 만드는 것입니다 생각합니다.
필요한만큼 얻을 수 있어야합니다.