1

所以我有一个应用程序可以下载大量文件,从 png 到 pdf。

问题似乎是如果有太多数据,它会崩溃。在 Xcode 中,它给出了内存错误。如果我在模拟器中运行它会正常工作,但在 iPhone 上它会崩溃。

我们谈论的是 40 MB 的数据,但是当我查看内存监视器时,它似乎像使用了大约 300-500 MB 的内存一样猛增。我相信当它在下载 35 MB PDF 的过程中崩溃时。我正在使用 AFNetworking 下载数据。任何帮助将不胜感激。

我真的没有任何代码要显示,因为它在执行 AFNetworking 所做的异步下载时基本上会崩溃。

4

2 回答 2

1

我从来不理解 AFNetworking 的受欢迎程度。它有助于错误地进行下载,从而导致此问题。你最好简单地使用NSURLConnection sendAsynchronousRequest:queue:completionHandler:

于 2013-10-29T23:03:57.803 回答
0

我知道这个问题比较老,但是我在内存和通过 AFNetworking 下载许多大文件时遇到了同样的问题。

AFNetworking 似乎缓存依赖于您的 NSURLRequest 的缓存策略。

我首先与:

    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:URLString]];

并且每次如果我开始下载许多文件内存问题。

现在我明确地在 NSURLRequest 上设置了 Cache-Policy 并且我不再有内存问题了:)

新电话:

    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:URLString] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:30];

这为我指明了正确的方向:https ://github.com/AFNetworking/AFNetworking/issues/109

也许这可以帮助您解决问题?

于 2014-03-02T12:22:50.103 回答