【发布时间】:2012-07-30 08:23:13
【问题描述】:
我正在制作一个应用程序,它将从网络服务中获取图片资源和文本。我选择了很棒的 AFNetworking 的 UIImageView+AFNetworking 类别来处理图片下载的东西。
但是,我遇到了内存问题。我使用了Instruments的Allocation工具,发现每次加载更多图片时,内存分配总会增加,大小为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];
谁能提供一些关于内存问题的想法?真的很头疼,因为一旦分配了内存,即使我清除了整个图像视图,它们也永远不会被清除。一段时间后,我的应用程序将从 Instruments 的 Real Memory Usage 窗口占用超过 100MB。
任何帮助将不胜感激!!提前致谢!!
【问题讨论】:
标签: ipad memory-management uiimageview afnetworking