我在项目中使用AlamofireImage。我经常使用someImageView.af_setImageWithURL(url)

但是在某些时候,我需要从imageCache手动获取图像,因为我不想将其应用于UIImageView。

这带来了两个问题:

  • 我可以通过使用let imageCache = AutoPurgingImageCache()创建一个图像缓存来直接访问图像缓存。该是否与.af_setImageWithURL()使用的缓存(Singleton)相同?还是这是一个新的?在我看来,这毫无用处,因为我无法从预填充的缓存中获利。
  • 给定相同的缓存:如何获取正确的图像?我想到了imageCache.imageForRequest(NSUrlRequest)。如果NSUrlRequest确实使用相同的NSURL,这是否与我以前使用.af_setImageWithURL()下载的图像匹配?
  • 最佳答案

    问题1

    这与UIImageView使用的缓存不同。如果需要访问相同的缓存,可以通过UIImageView.af_sharedImageDownloader.imageCache进行访问。

    问题2

    您将需要使用完全相同的NSURLRequest和相同的ImageFilter。如果您使用相同的NSURLRequest和相同的ImageFilter,则将直接从缓存中提取图像(如果存在)。如果您使用其他ImageFilter,则原始图像很可能会从NSURLCache中拉出,然后ImageFilter将在其上运行,放入AutoPurgingImageCache中并返回。如果NSURLRequest不同,则需要再次下载新图像。

    关于ios - Alamofire图片:af_setImageWithURL()之后从AutoPurgingImageCache获取图片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33318935/

    10-12 13:30