2012-07-30 51 views
5

我正在制作一个应用程序,它将从Web服务中获取图片资源和文本。我选择伟大的AFNetworking的UIImageView + AFNetworking类别来处理图像下载的东西。AFNetworking内存分配不断上升

但是,我正面临内存问题。我用分配工具的仪器,发现每次我加载更多的图像时,总会有内存分配的增长,1-2 MB的大小。我追踪了源代码,结果证明它位于AFNetworking的代码中。

的代码的确切行是:

- (void)connectionDidFinishLoading:(NSURLConnection *)__unused connection { 
    self.responseData = [self.outputStream propertyForKey:NSStreamDataWrittenToMemoryStreamKey]; 

    [self.outputStream close]; 

    [self finish]; 

    self.connection = nil; 
} 

这将占据存储器分配的99.6%。在项目

我的用户ARC,显示一个UITableView中的UIImageViews和配置类似下面的代码的单元格:

[self.imageView setImageWithURLRequest:request 
          placeholderImage:nil 
            success:successBlock 
            failure:failBlock]; 

任何一个可以提供有关存储问题的一些想法?一旦分配了内存,这真的是头痛的问题,即使我清除了整个图像视图,它们也不会被清除。一段时间后,我的应用程序将从占用超过100MB的实际内存使用量窗口仪器

任何帮助将不胜感激!提前致谢!!

+0

我刚刚开通了一个问题:https://github.com/AFNetworking/AFNetworking/issues/509 – rodowi 2012-09-12 00:18:39

回答

1

可以清除图像的缓存。有一个关于它在github的讨论在这里:

AFNetworking Image Cache

可能会或可能不会解决你的问题。我想象一下,定期清理缓存应该会让你的内存使用量减少。