나는 간단한 다운로드 관리자에서 코코아로 글을 쓰고 있으며 실제로는 NSURLDownload
을 사용하여 트릭을 수행합니다. 문제는 내가 NSURLDownload
이 하나의 세그먼트에서만 파일을 다운로드하고 다른 다운로드 관리자가 다운로드 성능을 향상시키기 위해 여러 세그먼트의 파일을 다운로드한다는 것을 알고 있다는 것입니다.코코아 API를 사용하여 다운로드 속도를 높이는 방법
실제로 나는 여러 개의 세그먼트로 다운로드하고 동시에 모든 세그먼트를 다운로드해야하는 파일을 분할해야한다고 생각합니다.
문제는 내가 어떻게 해야할지 모르겠다는 것입니다. 나는 이미 인터넷에서 성공을 거두지 않고 많이 검색합니다.
편집 :
이NSURL *downloadURL = [NSURL URLWithString:@"http://www.urltodownload.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:downloadURL cachePolicy: NSURLRequestUseProtocolCachePolicy timeoutInterval: 1000.0];
int fromByte = 0;
int toByte = 1000;
NSString *range = [NSString stringWithFormat:@"bytes=%i-%i", fromByte, toByte];
[request setValue:range forHTTPHeaderField:@"Range"];
[[NSURLDownload alloc] initWithRequest:request delegate:self];
도움 주셔서 감사합니다. 사실 NSMutableURLRequest 객체에서 범위를 지정할 수 있습니다. 다음은 작은 예제입니다 :'NSURL * downloadURL = [NSURL URLWithString : @ "http://www.urltodownload.com"]; NSMutableURLRequest * 요청 = [NSMutableURLRequest requestWithURL : downloadURL cachePolicy : NSURLRequestUseProtocolCachePolicy timeoutInterval : 1000.0]; int fromByte = 0; int toByte = 1000; NSString * range = [NSString stringWithFormat : @ "bytes = % i- % i", fromByte, toByte]; [요청 setValue : 범위에 대한 HTTPHeaderField : @ "범위"]; [[NSURLDownload alloc] initWithRequest : 델리게이트 : self]; ' –
이제 작동 중입니다. 고맙습니다. 다른 질문이 있습니다. 동일한 시간에 n 개의 스레드로 파일을 작성하는 가장 좋은 방법은 무엇이라고 생각합니까? –
여기에 몇 가지 옵션이 있습니다. 가장 간단한 방법은 for 루프를 사용하여 모든 NSURLDownloads를 시작하고 모든 대표자가 NSData를 사용하여 모든 파트를 한 데 모은다고 말한 경우입니다. (내가 생각하는 모든 것을 모으는 가장 좋은 방법이 있어야한다. :) – nacho4d