预取后从高速caching中采集图像

我正在使用Kingfisher框架来预取图像。 到Kingfisher框架的链接是: https : //github.com/onevcat/Kingfisher

这是我写的代码:

func downloadImages() { if(self.albumImagePathArray.isEmpty == false) { //dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { let urls = self.albumImagePathArray.map { NSURL(string: $0)! } let prefetcher = ImagePrefetcher(urls: urls, optionsInfo: nil, progressBlock: nil, completionHandler: { (skippedResources, failedResources, completedResources) -> () in print("These resources are prefetched: \(completedResources)") }) prefetcher.start() } } 

我不确定如何使用这个框架,因为我对App开发很陌生。 一旦我预取了图像,如何从caching中获取这些预取图像。 我想从caching中select这些图像,并把它们放入一个UIImage数组中。 以前我没有从caching中select,但我每次都加载URL,并把它们称为albumImagePathArray,通过contentsOfURLstring数组我将它转换成UIImage,因此它可以被放入albumImages中,如下面的代码所示:

 var albumImages = [UIImage]() for i in 0 ..< self.albumImagePathArray.count { let image = UIImage(data: NSData(contentsOfURL: NSURL(string: self.albumImagePathArray[i])!)!) self.albumImages.append(image!) } 

现在我想改变这一切,我想在预取后直接从caching中select,所以我不必每次都下载图像,这需要很多时间。 任何人都可以帮助我吗? 非常感谢!

我也是iOS Dev的新手,我使用翠鸟来保存图像caching。

为了在预取图像的过程中进入到这一点,有一个optionInfo ,它保留nil 。 所以,如果我猜对了,你从URL预取图像,所以在这个optionInfo你可以为每个图像设置一个caching标识符,如果你在那里放置图像的URL,最好。

翠鸟文档很清楚optionInfo所以你可以改变你的function

 func downloadImages() { if(self.albumImagePathArray.isEmpty == false) { let myCache = ImageCache(name: "the url of the images") //dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { let urls = self.albumImagePathArray.map { NSURL(string: $0)! } let prefetcher = ImagePrefetcher(urls: urls, optionsInfo: [.TargetCache(myCache)], progressBlock: nil, completionHandler: { (skippedResources, failedResources, completedResources) -> () in print("These resources are prefetched: \(completedResources)") }) prefetcher.start() } } 

因此,通过这种做法,您可以将其存储到caching中。 要继续,你必须向我们展示你在预取之后已经尝试了什么。