Swift 2 Parse 和 KingFisher 缓存图像

Swift 2 Parse and KingFisher cache images

我正在使用 KingFisher https://github.com/onevcat/Kingfisher

库,这样我就可以缓存图像,如果有人熟悉它,我需要一些提示。 所以我有以下代码

let myCache = ImageCache(name: recipesClass.objectId!)
let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
let optionInfo: KingfisherOptionsInfo = [
    .DownloadPriority(0.5),
    .CallbackDispatchQueue(queue),
    .Transition(ImageTransition.Fade(1)),
    .TargetCache(myCache)
]
if  let imageFile = recipesClass[RECIPES_COVER] as? PFFile {

let URL = NSURL(string: imageFile.url!)!

cell.coverImage.kf_setImageWithURL(URL, placeholderImage: nil,
    optionsInfo: optionInfo,
    progressBlock: { receivedSize, totalSize in
        print("\(indexPath.row + 1): \(receivedSize)/\(totalSize)")
    },
    completionHandler: { image, error, cacheType, imageURL in
        print("\(indexPath.row + 1): Finished")
})

} else {
     cell.coverImage.image = UIImage(named:"logo")
}

当我第一次进入视图时,它会正常加载具有这种良好动画效果的图像。但是我还有一个刷新按钮,它可以查询 Parse,它会检查是否有任何新的 Recipe,然后它会从集合视图中重新加载数据并打印 "Finished"

这是否意味着它重新下载了图像?或者它从缓存中加载它们??

我问是因为它以不同的方式将图像附加到单元格内,而不是第一次加载时。

有什么想法吗?

P.S。我想要做的是,在每个单元格中,我想用每个配方的对象 ID 缓存图像,所以当单元格加载并且它有使用这个唯一对象 ID 缓存的图像时,从缓存加载它而不是下载它.

试试这个代码:

var imageView:UIImageView!    
let mCa = ImageCache(name: "my_cache")
    let imagePath = getImagePath("image url")
    imageView.kf_setImageWithURL(NSURL(string: imagePath)!,placeholderImage: UIImage(named: "DefaultImageName"),optionsInfo: [.TargetCache(mCa)])