2011-12-08 64 views
0

我們目前在我們的iPad應用程序中使用ASIHTTPRequest,這是一個PDF閱讀器。ASIHTTPRequest正在下載大量PDF文件崩潰iPad

目前的應用程序下載較大的PDF的50 + MB從我們的Web服務器上的iPad 2的完美的罰款使用此代碼:

然而,當我們分析的應用程序,我們可以看到,在下載過程中的應用整體內存保持在下載發生到PDF的完整大小的同時,它看起來像應用程序正在寫入內存然後出到磁盤?

檢查ASI文檔我們看起來是否正確,有沒有人見過這個問題?

感謝阿龍

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

回答

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]; 
0

您可能有那麼它在下載文件寫入到磁盤設置臨時下載路徑。因此,當內存佔用對系統變得不可接受時,它可能會將整個事件保留在內存中並導致崩潰。文件不完全清楚。

在下載使用downloadDestinationPath數據到一個文件中,而請求正在進行數據 將被保存在一個臨時文件。 此文件的路徑存儲在temporaryFileDownloadPath中。

我似乎無法找出發生了什麼,如果temporaryFileDownloadPath是零。

+0

如果您在源代碼看,你可以看到,如果temporaryFileDownloadPath是零,它被設置爲NSTemporaryDirectory,用一個唯一的標識符。所以一般情況下,您可能想要將temporaryFileDownloadPath設置爲零。 –