我正在使用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];
}
我应该如何改进代码,以避免内存使用问题?