2013-01-08 8 views
0

NSURLConnection을 사용하여 청크로 zip 파일을 다운로드 할 때 문제가 있습니다.NSURLConnection 다운로드 큰 zip 파일

-(void)connection: didReceiveData:(NSData *)data method.

내가 시도 2 ​​가지 방법이 있습니다, 첫 번째는 NSMutableData 객체에 모든 데이터를 추가하고, 마지막에 writeToFile:atomically: 전화를했다. 이것은 작은 비디오 (14MB)에서 작동했지만, 다운로드하는 더 큰 비디오의 경우에는 너무 많은 메모리를 유지해야했습니다.

두 번째 방법은 데이터가 들어올 때 (다운로드를 위해 작동하는 것처럼 보였지만 압축을 풀지 않을 때) writeToFile:atomically:으로 전화하는 것입니다. 이것은 선호되는 방법이지만 파일을 압축 해제하지 않을 경우 파일이 올바르게 재구성되는지 확실하지 않습니다.

도움이 될 것입니다.

+0

제안 : 추가 후 끝에 writeToFile을 호출하는 대신 writeToFile을 호출하여 (버퍼 대신 파일에 즉시 데이터 추가) 시도해보십시오. –

답변

1

두 번째 방법이 나에게 맞는 것 같습니다. 메모리에 보관하기에는 너무 큰 경우 디스크에 데이터를 반드시 작성해야합니다. 그리고 결코 이것이 당신의 능력에 영향을 미쳐야합니다. 제 추측으로는 압축을 풀 때 뭔가 잘못하고 있다는 것입니다. SSZipArchive를 사용합니까? (실제로 zip 파일의 URL이 필요하므로 디스크에 저장해야합니다.)