AFNetworking内存分配不断增加

时间:2012-07-30 08:23:14

标签: ipad memory-management uiimageview afnetworking

我正在创建一个应用程序,它将从Web服务中获取图片资源和文本。我选择了伟大的AFNetworking的UIImageView + 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。

任何帮助将不胜感激!!在此先感谢!!

1 个答案:

答案 0 :(得分:1)

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

AFNetworking Image Cache

这可能会也可能不会解决您的问题。我会想象定期清理缓存应该会降低内存使用率。