我们目前正在iPad应用程序中使用ASIHTTPRequest,这是一个PDF查看器。
目前,该应用程序使用以下代码在iPad 2上从我们的网络服务器上下载大型PDF 50 + MB:
然而,当我们分析应用程序时,我们可以看到在下载期间,应用程序整体内存不断增加,而下载发生在PDF的完整大小,看起来应用程序正在写入内存然后写入磁盘?
检查ASI文档我们看起来看起来是否正确,以前是否有人见过这个问题?
谢谢Aaron
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:@"/Users/ben/Desktop/my_file.pdf"];
答案 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,我似乎无法找出会发生什么。