2012-02-24 47 views
0

我有一個大問題,我無法解決。 我正在做一個iPad應用程序&下載一個zip文件(大一個,像80Mb)&在某些時候,如75%,應用程序崩潰... 我執行配置文件&我可以看到內存是如何隨着下載量的增長,這顯然是一個記憶問題。 我的問題是,我該如何正確解決這個問題?我可以用某種方式釋放這些內存嗎? 告訴我,如果我需要在這裏放一些源代碼&謝謝你提前! 關心!內存問題downloding一個大文件

回答

3

請勿將下載的字節保留在內存中,而是按照接收到的順序將它們寫入磁盤。如果您不知道如何使用,ASIHTTPRequest可以爲您提供幫助。

3

您需要使用NSOutputStream並將其直接寫入磁盤,而不是將其保存在內存中直到完成下載。這種方法將減少運行時內存的使用並解決您的崩潰問題。

看看API在此方法中引用

+ (id)outputStreamToFileAtPath:(NSString *)path append:(BOOL)shouldAppend 

這裏是流一些參考: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSOutputStream_Class/Reference/Reference.html

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSInputStream_Class/Reference/Reference.html

+0

這是偉大的!但我忘了告訴你,我需要取消它,並需要使用內存。 謝謝你的回答! – Oscar 2012-02-24 13:54:30

+0

@Oscar:「unfile it」是什麼意思?你可以在4kB塊中進行操作嗎? – JeremyP 2012-02-24 13:56:56

+0

對不起,解壓縮...我被我的英語水平搞糊塗了;) – Oscar 2012-02-27 08:25:38