内存问题下载大文件

时间:2012-02-24 12:49:31

标签: objective-c ipad memory download

我有一个我无法解决的大问题。 我正在制作一款iPad app&在其中下载一个zip文件(大一个,如80Mb)&在某些时候,如75%,该应用程序崩溃... 我执行了个人资料和我可以看到内存随着下载而增长,因此,这显然是一个内存问题。 我的问题是,我该如何正确解决这个问题?我可以用某种方式释放一些内存。 告诉我,如果我需要在这里放一些源代码和谢谢你提前! 此致!

2 个答案:

答案 0 :(得分:3)

不要将下载的字节保留在内存中,而是按照收到的顺序将它们写入磁盘。如果您不知道如何操作,ASIHTTPRequest可以帮助您。

答案 1 :(得分:3)

您需要使用NSOutputStream并将其直接写入磁盘,而不是将其保留在内存中直到完全下载。这种方法将减少运行时内存的使用,并将解决崩溃问题。

在API参考

中查看此方法
+ (id)outputStreamToFileAtPath:(NSString *)path append:(BOOL)shouldAppend

以下是Streams的一些参考: 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