ASIHTTPRequest下载大型PDF崩溃iPad

时间:2011-12-08 10:45:00

标签: objective-c ios asihttprequest

我们目前正在iPad应用程序中使用ASIHTTPRequest,这是一个PDF查看器。

目前,该应用程序使用以下代码在iPad 2上从我们的网络服务器上下载大型PDF 50 + MB:

然而,当我们分析应用程序时,我们可以看到在下载期间,应用程序整体内存不断增加,而下载发生在PDF的完整大小,看起来应用程序正在写入内存然后写入磁盘?

检查ASI文档我们看起来看起来是否正确,以前是否有人见过这个问题?

谢谢Aaron

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:@"/Users/ben/Desktop/my_file.pdf"];

2 个答案:

答案 0 :(得分:1)

使用NSFileManager设置目标目录路径

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"my_file.pdf"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDownloadDestinationPath:filePath];

答案 1 :(得分:0)

您可能必须设置临时下载路径,以便在下载文档时将其写入磁盘。原样,当内存占用变得对系统不可接受时,它可能会将整个内容保留在内存中并崩溃。文档在这方面并不完全清楚。

  

使用downloadDestinationPath将数据下载到文件时,数据   将在请求进行时保存在临时文件中。   此文件的路径存储在temporaryFileDownloadPath。

如果temporaryFileDownloadPath为nil,我似乎无法找出会发生什么。