Como baixar um arquivo grande com o iPhone SDK e evitar problemas de uso de memória?

Estou usando oNSURLConnection class para baixar um arquivo grande no meu aplicativo para iPhone, mas ele trava de vez em quando porque está usando muita memória. Eu estou fazendo o habitualNSURLConnection para anexar os dados recebidos a umNSMutableData objeto.

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [self.fileData appendData:data];
}

Depois que eu terminar de baixar o arquivo inteiro, salve-o em um arquivo temporário local e o leio como um arquivo mapeado como este:

- (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];
}

O que posso melhorar aqui para evitar esses problemas de uso de memória?

questionAnswers(3)

yourAnswerToTheQuestion