![](/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.