2012-09-06 2 views
1

서버에서 일부 문서를 다운로드 할 때 ASIHTTP를 사용하고 있습니다. 먼저 로컬 버전 (iPad 파일 시스템에 저장 됨)과 서버 버전 간의 차이점을 제어하는 ​​단추가 있고 (확인 된 경고보기 이후) 다운로드가 시작됩니다. 문서를 다운로드하려면 다음 코드를 사용하십시오.다운로드 문서에 대한 ASIHTTP 요청이 두 번 실패합니다.

for (SyncNode *node in _syncDocuments) { 
     //SyncNode is a my Class that handle document 
     // start the download 
     NSString *filename = [NSString stringWithFormat:@"%@.%@",node.uniqueIdentifier,node.extension]; 
     NSString *tempPath = [SavedDocument pathToSyncFile:filename]; 
     // tempPath is a string like this 
     // /var/mobile/Applications/5C05AA6F-55B3-46FD-8330-094BD0E61973/Documents/SyncDocumentsFolder/D49B421C-7528-4A3D-A8F6-942FF03881D0/f2e650e2-cff7-4485-9152-5445bee436f2.jpg 

     //BaseHTTPRequest is an extension of ASIHTTPRequest 
     BaseHTTPRequest *request = [[[BaseHTTPRequest alloc] initWithURL:[NSURL URLWithString:node.contentLocation] accountUUID:_uuid] autorelease]; 
     request.userInfo = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:i+1] forKey:@"requestNumber"]; 
     [request setDelegate:self]; 
     [request setShowAccurateProgress:YES]; 
     [request setDownloadProgressDelegate:self]; 
     [request setDownloadDestinationPath:tempPath]; 

     [request startAsynchronous]; 
} 

시나리오.

  1. 가 나는 버튼과 루틴 계산 다운로드
  2. 나는 다운로드 및 일상 SP1의 모든 문서를 수락의 크기를 밀어
  3. 아이 패드
  4. 에 저장된 로컬 파일이 없습니다. 이 문서 중 하나를 표시하려고하면 (웹보기에서) 제대로 작동하고 문서를 볼 수 있습니다.
  5. 로컬 문서를 모두 삭제합니다 (삭제 프로세스가 완벽하게 작동합니다. 실제로는 파일 시스템에 문서가 존재합니다).

이제 1의 같은 상황에서 I'am하지만 난 다시 모든 ASIHTTPRequest 수익을 (두 번째)을 같은 문서 에디터를 이용해 매우 짧은 시간 간격으로, 내 - (void)requestFinished:(ASIHTTPRequest *)request 메소드를 호출 할 때. 예 : 8MB의 문서가있는 디렉토리가 있습니다. 모든 다운로드를 완료하는 데 11 또는 12 초가 필요합니다. 두 번째로 동일한 문서를 사용하는 동일한 루틴은 모든 다운로드를 완료하는 데 1 초 미만이 필요합니다.

다운로드가 실행되지 않는 것 같지만 ASIHTTP는 오류 대리자 메서드를 호출하지 않습니다.

Error copying file to temp path Error Domain=NSCocoaErrorDomain Code=260 "The operation 
couldn’t be completed. (Cocoa error 260.)" UserInfo=0x1229e900 
{NSFilePath=/var/mobile/Applications/5C05AA6F-55B3-46FD-8330- 
094BD0E61973/Documents/SyncDocumentsFolder/D49B421C-7528-4A3D-A8F6-942FF03881D0/f2e650e2-cff7- 
4485-9152-5445bee436f2.jpg, NSUnderlyingError=0x1229e570 "The operation couldn’t be completed. 
No such file or directory"} 

이 문제는 나를 미치게 :

I 다운로드 문서 (두 번째) I 콘솔에서이 오류 메시지가 표시를 게재하도록 노력

! 아이디어가 있으십니까?

답변

0

setCachePolicy 속성을 사용하여 요청에 대한 캐시 정책을 설정하십시오. 더 많은 정보를 들어

[request setCachePolicy:(ASIDoNotReadFromCacheCachePolicy | ASIDoNotWriteToCacheCachePolicy)]; 

이 읽기 ​​: http://allseeing-i.com/ASIHTTPRequest/How-to-use#using_a_download_cache

+1

감사합니다! 너는 내 새로운 우상이야! 이미이 속성을 사용하려고했지만 잘못된 값을 설정했을 수 있습니다! – Fry

관련 문제