![](/img/trans.png)
[英]Memory pressure issue while downloading multiple files using AFNetworking
[英]Memory pressure while downloading a large size file using GoldRaccoon(ftp library)
我使用GoldRaccoon作为我的第3个ftp库。 当我下载大文件(> 500MB)时,我的应用程序将因内存不足而崩溃。
下面的快照使用工具来检测我的应用程序中的内存分配。
似乎self.receivedData占用了过多的内存分配。 收到内存不足警告时如何处理这些分配?
我知道这已经很老了,但我只是在处理完全相同的事情,我敢肯定其他人也是如此。 它很容易修复,不确定最初为什么没有实现它。
在GRRequestsManager.m中,将此方法替换为此。
- (void)dataAvailable:(NSData *)data forRequest:(id<GRDataExchangeRequestProtocol>)request
{
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:[request localFilePath]])
{
[data writeToFile:[request localFilePath] atomically:YES];
}
else
{
NSFileHandle *handle = [NSFileHandle fileHandleForUpdatingAtPath:[request localFilePath]];
[handle seekToEndOfFile];
[handle writeData:data];
[handle closeFile];
}
}
然后,在-(void)requestCompleted:(GRRequest *)request方法中,删除下载部分中对文件的写入。 就是这样,现在它不再将文件存储在NSData中并在末尾写入文件,而是继续将数据添加到文件中。 我没有花时间使它漂亮或处理写错误,但是它可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.