1

我与和AlamofireImage一起使用。我使用 Promise 链接下载 x 个图像,因为我想同步执行此操作。我似乎无法理解是自动缓存还是必须将图像显式添加到缓存中?到目前为止,我看到的唯一示例都没有使用,所以我很难找到答案。PromiseKitAlamofireImageDownloader()ImageDownloader

如果没有 - 我如何将它添加到缓存中?我试过使用:

self.imageDownloader.imageCache?.addImage(image, withIdentifier: imageUrl)

但它所做的只是增加我的内存使用量(即一遍又一遍地将相同的图像添加到缓存中)

4

2 回答 2

0

我也使用了与您在这里相同的方法。但根据 API 参考,图像应该自动添加到缓存中:

Each downloaded image is cached in the underlying NSURLCache as well as the in-memory image cache that supports image filters.

https://alamofire.github.io/AlamofireImage/Classes/ImageDownloader.html

于 2020-11-13T19:47:05.800 回答
0

我认为定义一个 AutoPurgingImageCache() 然后在缓存过程中使用它需要解决你的内存使用问题。

let photoCache = AutoPurgingImageCache(
    memoryCapacity: 100 * 1024 * 1024,
    preferredMemoryUsageAfterPurge: 60 * 1024 * 1024
)

您可以更改memoryCapacitypreferredMemoryUsageAfterPurge代表 MB。要在缓存中添加任何图像,您可以这样使用:

photoCache.addImage(scaledImage, withIdentifier: urlString)

您也可以查看此主题以获取更多详细信息和AlamofireImage GitHub页面。

于 2016-04-24T19:42:39.293 回答