私はiPhoneアプリケーションで大きなファイルをダウンロードするのにNSURLConnection
クラスを使用していますが、あまりにも多くのメモリを使用しているため、頻繁にクラッシュします。受信したデータをNSMutableData
オブジェクトに追加するには、通常のNSURLConnection
の使い方をしています。iPhone SDKを使用して大きなファイルをダウンロードし、メモリ使用の問題を回避するにはどうすればよいですか?
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[self.fileData appendData:data];
}
私はファイル全体をダウンロードし終えた後、その後、私はローカルの一時ファイルに保存して、このようなマッピングされたファイルとしてそれを読む:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// save the downloaded data into a temporary file
NSString *tempPath = NSTemporaryDirectory();
NSString *tempFile = [tempPath stringByAppendingPathComponent:@"temp.pdf"];
[self.fileData writeToFile:tempFile atomically:YES];
NSData *mappedData = [NSData dataWithContentsOfMappedFile:tempFile];
NSURL *baseURL = [NSURL URLWithString:@"http://mydomain.com"];
[webView loadData:mappedData MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:baseURL];
}
が、私はこれらを避けるために、ここで何を改善することができますメモリ使用の問題?
を使用しています。あなたはもちろんそれで大丈夫なら。 https://github.com/thibaultCha/TCBlobDownload – thibaultcha