Загрузочный кеш Kingfisher - PullRequest
       16

Загрузочный кеш Kingfisher

0 голосов
/ 09 января 2019

Мой API возвращает 2 типа фотографий: маленькие и большие

Я использую kingfisher для загрузки фотографий и всегда сначала загружаю маленькие фотографии. Когда я загружаю большое фото, я хочу достичь этого

if hasCacheSmallPhoto {
  imageView.kf.setImage(with: bigImageUrl, placeholder: cacheImage)
} else {
  imageView.kf.setImage(with: bigImageUrl, placeholder: defaultPlaceHolderImage)
}

Как правильно добиться этого с помощью зимородка

1 Ответ

0 голосов
/ 09 января 2019

сначала нужно проверить, кэшируется ли маленькое изображение kingFisher Cache.

    if ImageCache.default.isCached(forKey:smallImageUrl) {

     ImageCache.default.retrieveImage(forKey: smallImageUrl) { result in
    switch result {
    case .success(let value):

       imageView.kf.setImage(with: bigImageUrl, placeholder: value.image)

    case .failure(let error):
        print(error)
    }
}   
}
else {
     imageView.image = defaultPlaceHolderImage
     imageView.kf.setImage(with: smallImageUrl) { result in
    // `result` is either a `.success(RetrieveImageResult)` or a `.failure(KingfisherError)`
    switch result {
    case .success(let value):
        // The image was set to image view:
        imageView.kf.setImage(with: bigImageUrl, placeholder: value.image)


        // The source object which contains information like `url`.
        print(value.source)

    case .failure(let error):
        print(error) // The error happens
    }
}
}
...