2012-10-08 6 views
0

파일을 다운로드하고 진행률 표시 줄을 표시하려면
이 작업을 수행 할 수있었습니다.
지금, 내가 초기화 및 업데이트 레이블을 진행 레이블에서 진행 값을 표시하고이 코드를 사용하려면 :setDidReceiveDataSelector를 사용할 때 저장하지 않음

[queue setDelegate:self]; 
[queue setRequestDidFinishSelector:@selector(updateLabel)]; 
[queue setDownloadProgressDelegate:progress]; 
[queue setShowAccurateProgress:YES]; 

ASIHTTPRequest *request; 
request = [ASIHTTPRequest requestWithURL:url]; 
[request setDelegate:self]; 

[request setTemporaryFileDownloadPath:[filePath stringByAppendingString:@".download"]]; 
[request setAllowResumeForFileDownloads:YES]; 

[request setDidFinishSelector:@selector(updateLabel)]; 
[request setDidReceiveDataSelector:@selector(updateLabel)]; 

[request setShouldContinueWhenAppEntersBackground:YES]; 
[request setShouldAttemptPersistentConnection:NO]; 
[request setDownloadDestinationPath:filePath]; 
[queue addOperation:request]; 
[queue go]; 

그러나 대상 경로에 저장하지!

와 나는이 코드를 지우면 :

[request setDidReceiveDataSelector:@selector(updateLabel)]; 

완료 절약!

무엇이 문제입니까? 진행 값이 당신이 메인 스레드에해야 할 일을 뭔가

+0

희망 http://allseeing-i.com/ASIHTTPRequest/How-to- :

또는

는 다른 방법으로 당신은 나를 위해 작동 아래의 코드를 사용할 수 있습니다 # tracking_download_progress_for_a_set_of_requests를 사용하십시오 – kamleshwar

+0

질문과 직결됩니다.하지만 자주 ASIHTTPRequest에 대한 질문이 자주 발생합니다. 종종 개발중인 새로운 앱입니다. [ 'ASHTTPRequest'] (http://allseeing-i.com/%5Brequest_release%5D)는 더 이상 개발되지 않았으며 개발자는 다른 네트워킹 라이브러리를 대신 추천합니다. – FluffulousChimp

답변

0

을 변경하는 경우

은 내가 레이블 텍스트를 업데이트 할. 응용 프로그램의 UI 업데이트는 백그라운드 스레드가 아닌 주 스레드에 의해 수행됩니다. 이 당신을 도울 것입니다

- (void)fetchThisURLFiveTimes:(NSURL *)url 
{ 
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request addOperation:request]; 
    [request cancelAllOperations]; 
    [request setDownloadProgressDelegate:myProgressIndicator]; 
    [request setDelegate:self]; 
    [request setRequestDidFinishSelector:@selector(queueComplete:)]; 

    [request go]; 
} 

- (void)queueComplete:(ASINetworkQueue *)queue 
{ 
    NSLog(@"Value: %f", [myProgressIndicator progress]); 
    [self performSelectorOnMainThread:@selector(updateLabel) withObject:nil waitUntilDone:NO]; 
} 
+0

이 코드는 작동하지 않습니다! 문제가있다. – coder4xc

관련 문제