UIImageView UIKit setImageWithURL内存使用情况

时间:2014-10-24 03:29:00

标签: ios objective-c memory uiimageview

尝试调试我的应用,但我的记忆力不断增加。

我有一个应用程序,它通过AFNetworking从Web服务中提取JSON。我使用UIKit + AFNetworking来加载我从UIImageView中的JSON获得的URL字符串,这些字符串位于自定义XIB表格单元格中。我使用setImageForURL

当我加载新的JSON并因此加载新的图像URL时,我的内存使用量每次增加2-7 mb。旧的图像在UI中被新的替换。实时内存使用率上升。我查看了持有JSON的数组等等 - 没有泄漏。

我怀疑有一些图像缓存正在进行,但在使用带有setImageWithURL的UIImageView时,我从未见过有关图像缓存的任何信息。我使用imageNamed看到了内存问题。

setImageWithURL是否与imageNamed有相同的内存问题?

1 个答案:

答案 0 :(得分:0)

来自AFNetworking的

setImageWithURL:处理使用此方法下载的图像的缓存。下次你为同一个URL调用它时,它将首先检查缓存以查看图像是否被缓存(因此不需要再次访问网络)。

来自AFNetworking API:

  

从指定的URL异步下载图像并进行设置   一旦请求完成。任何以前的图像请求   接收器将被取消。如果图像在本地缓存,则   立即设置图像,否则指定占位符图像   将立即设置,然后远程图像将被设置一次   请求已完成。默认情况下,网址请求为Accept   标题字段值为“image / *”,缓存策略为   NSURLCacheStorageAllowed,超时间隔为30秒,和   设置不处理cookie。要以不同方式配置URL请求,请使用   setImageWithURLRequest:placeholderImage:success:failure:

所以确实有缓存,因此内存使用。

希望它有所帮助。