gpt4 book ai didi

ios - 预取后从缓存中选取图像

转载 作者:可可西里 更新时间:2023-11-01 01:35:40 25 4
gpt4 key购买 nike

我正在使用 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()
}
}

我不确定如何使用这个框架,因为我是应用程序开发的新手。预取图像后,如何从缓存中获取这些预取图像。我想从缓存中选择这些图像并将它们放入一个 UIImage 数组中。以前我没有从缓存中选择,但我每次都加载 URL 并将它们放入一个名为 albumImagePathArray 的字符串数组,并通过 contentsOfURL 将其转换为 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!)
}

现在我想改变这一切,我想在预取后直接从缓存中选择,这样我就不必每次都下载图像,这会花费很多时间。谁能帮我解决这个问题?非常感谢!

最佳答案

我也是 iOS Dev 的新手,我正在使用 kingfisher 存储图像以进行缓存。

为了在预取图像时进入正题,有一个 optionInfo,您将其保留为 nil。因此,如果我猜对了,您可以从 URL 中预取图像,那么在此 optionInfo 中,您可以为每个图像设置缓存标识符,最好将图像的 URL 放在那里。

Kingfisher 文档对 optionInfo 非常清楚,因此您可以将函数更改为此

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()
}
}

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

关于ios - 预取后从缓存中选取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com