所以我有一个应用程序,它将下载大量文件,范围从png到pdfs。
如果数据太多,似乎会出现问题,它会崩溃。在Xcode中,它会出现内存错误。如果我在模拟器中运行它会工作正常,但在iPhone上会崩溃。
我们谈论的是40 MB的数据,但是当我查看内存监视器时,它似乎正在飙升,就像使用了大约300-500 MB的内存。我相信当它在下载35 MB PDF的过程中崩溃时。我正在使用AFNetworking下载数据。任何帮助将不胜感激。
我真的没有任何代码可以显示,因为它在进行AFNetworking的异步下载时基本上会崩溃。
答案 0 :(得分:1)
我从未理解AFNetworking的受欢迎程度。它有助于不正确地进行下载,从而导致这个问题。您最好只使用NSURLConnection sendAsynchronousRequest:queue:completionHandler:。
答案 1 :(得分: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
也许这可以帮助您解决问题?