如何使用 AlmofireImage 最轻松地将 NSURLCache 的内存容量设置为零?

Posted

技术标签:

【中文标题】如何使用 AlmofireImage 最轻松地将 NSURLCache 的内存容量设置为零?【英文标题】:How to most easily set the memory capacity of the NSURLCache to zero with AlmofireImage? 【发布时间】:2016-07-09 21:07:43 【问题描述】:

我正在使用imageView.af_setImageWithURL(URL),它运行良好。我没有对图像过滤器做任何事情,我看到了这个注释:

如果不使用图片过滤器,建议将 NSURLCache 的内存容量设置为零,以避免将相同的内容两次存储在内存中。

使用 UIImage 扩展完成此任务的最简洁/最小的方法是什么?

【问题讨论】:

【参考方案1】:

您的回答肯定会奏效。这是另一种不需要您构建自己的 ImageDownloader 的方法。

let downloader = UIImageView.af_sharedImageDownloader
let configuration = downloader.sessionManager.session.configuration
configuration.URLCache?.memoryCapacity = 0

这最终会做同样的事情,而不必创建任何新的实例。

【讨论】:

【参考方案2】:

我正在尝试以下方法:

// From https://github.com/Alamofire/AlamofireImage - "If you do not use image filters, it is advised to set the memory capacity of the NSURLCache to zero to avoid storing the same content in-memory twice."
// Note: We're making an educated guess that NSURLCache does not allocate the memory capacity when it's created.. it just uses it as an upper bound. So we'll let ImageDownloader create the session configuration it wants, then we'll just set the memory capacity on its url cache to 0 as suggested.
let configurationWithNoMemoryCapacityOnURLCache = ImageDownloader.defaultURLSessionConfiguration()
configurationWithNoMemoryCapacityOnURLCache.URLCache?.memoryCapacity = 0

UIImageView.af_sharedImageDownloader = ImageDownloader(
    configuration: configurationWithNoMemoryCapacityOnURLCache
)

【讨论】:

以上是关于如何使用 AlmofireImage 最轻松地将 NSURLCache 的内存容量设置为零?的主要内容,如果未能解决你的问题,请参考以下文章

如何轻松地将GQLQuery的日期字段格式化为另一个时区?

使用 Almofireimage 下载然后缓存单元格图像

如何使用 netbeans 轻松地将任何数据库视图绑定到 jtable?

如何使用 yum 轻松地将 posix 支持添加到 PHP?

如何轻松地将变量从一个视图传递到另一个视图?

如何轻松地将多维 JSON 解析为 html?