我将AlamofireImage
与PromiseKit
和Alamofire
结合使用。我使用promises链接x个图像的下载,因为我想同步这样做。我似乎无法理解ImageDownloader()
是否自动缓存,或者我是否必须将图像显式添加到缓存中?到目前为止我见过的唯一例子都没有使用ImageDownloader
,所以我很难找到答案。
如果不是 - 如何将其添加到缓存中?我尝试过使用:
self.imageDownloader.imageCache?.addImage(image, withIdentifier: imageUrl)
但它所做的只是增加我的内存使用量(即将相同的图像一遍又一遍地添加到缓存中)
答案 0 :(得分:0)
我认为定义一个AutoPurgingImageCache()然后在缓存过程中使用它需要解决你的内存使用问题。
let photoCache = AutoPurgingImageCache(
memoryCapacity: 100 * 1024 * 1024,
preferredMemoryUsageAfterPurge: 60 * 1024 * 1024
)
您可以更改 memoryCapacity , preferredMemoryUsageAfterPurge 代表MB。要在缓存中添加任何图像,您可以这样使用:
photoCache.addImage(scaledImage, withIdentifier: urlString)
另外,您可以查看this topic了解详情和AlamofireImage GitHub页面。
答案 1 :(得分:0)
我也使用了与此处相同的方法。但是根据API参考,应将图片自动添加到缓存:
O(log n)
https://alamofire.github.io/AlamofireImage/Classes/ImageDownloader.html