AFNetworking内存分配不断增加

Gab*_*eah 5 memory-management uiimageview ipad afnetworking

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

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

确切的代码行是:

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

    [self.outputStream close];

    [self finish];

    self.connection = nil;
}
Run Code Online (Sandbox Code Playgroud)

这将占用99.6%的内存分配.

我在项目中使用ARC,在UITableView中显示UIImageViews并像下面的代码一样配置单元格:

[self.imageView setImageWithURLRequest:request
                          placeholderImage:nil
                                   success:successBlock
                                   failure:failBlock];
Run Code Online (Sandbox Code Playgroud)

任何人都能对内存问题有所了解吗?一旦内存被分配,它真的很头疼,即使我清除了整个图像视图,它们也永远不会被清除.过了一会儿,我的应用程序将从InstrumentsReal Memory Usage窗口占用超过100MB .

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

小智 1

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

AF网络图像缓存

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