このクラスを使用NSURLConnection
して iPhone アプリケーションで大きなファイルをダウンロードしていますが、メモリの使用量が多すぎるため、頻繁にクラッシュします。受信したデータをオブジェクトNSURLConnection
に追加するために、通常の使用法を行っています。NSMutableData
- (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];
}
これらのメモリ使用量の問題を回避するために、ここで何を改善できますか?