如果使用pod来缓存图像并以异步方式下载,我会下载图像两次吗?

时间:2018-05-21 03:19:51

标签: ios swift uiimageview kingfisher

我是编程和iOS开发的新手,我尝试使用翠鸟来异步缓存和下载图像。

我有一个downloadURL,来自该链接的下载图像将用于2图像视图。用于blurryImageView和posterImageView。

blurryImageView将用作背景,如果用户的图像不是所需的垂直水平比例,如下图所示

enter image description here

我的问题是,如果我从那个链接下载并将用于2个图像视图,我实际上是下载两次还是仅一次?

这是我使用的简化代码:

import Kingfisher

        @IBOutlet weak var posterImageView: ImageView!
         @IBOutlet weak var blurryImageView: ImageView!

        override func viewDidLoad() {
            super.viewDidLoad()

         guard let urlPoster = URL(string: imagePathString) else {return}
         blurryImageView.kf.setImage(with: urlPoster)
         posterImageView.kf.setImage(with: urlPoster)

        }

正如您在上面的代码中看到的那样,图像将以异步方式下载,并且当posterImageView.kf.setImage(with: urlPoster)被触发时,图像(我假设)从blurryImageView.kf.setImage(with: urlPoster)开始尚未完成下载。所以我担心它会被下载两次效率不高。我希望它只下载一次。如果我只想下载它,我该怎么办

1 个答案:

答案 0 :(得分:1)

不要担心它不会再次下载。如果您阅读翠鸟文档,它会提到,一旦下载了图像,它们就会被缓存。因此,下次您从该网址调用图片时,它会从缓存中获取。

这是来自翠鸟文档的行

  

翠鸟将从网址下载图片,并将其发送给两者   内存缓存和磁盘缓存,并在imageView中显示它。当你   稍后使用相同的代码,将从缓存中检索图像   立即显示。