【发布时间】:2016-08-30 14:36:21
【问题描述】:
我正在使用AlamofireImage 库来缓存下载的图像。
代码:
import UIKit
import AlamofireImage
class ViewController: UIViewController {
@IBOutlet weak var firstImageView: UIImageView!
@IBOutlet weak var secondImageView: UIImageView!
let downloader = ImageDownloader()
let URLRequest = NSURLRequest(URL: NSURL(string: "https://httpbin.org/image/jpeg")!)
override func viewDidLoad() {
super.viewDidLoad()
requestFirstImage()
}
func requestFirstImage() {
downloader.downloadImage(URLRequest: URLRequest) { response in
print(response.request)
print(response.response)
debugPrint(response.result)
if let image = response.result.value {
self.firstImageView.image = image
self.requestSecondImage()
}
}
}
func requestSecondImage() {
downloader.downloadImage(URLRequest: URLRequest) { response in
print(response.request)
print(response.response)
debugPrint(response.result)
if let image = response.result.value {
self.secondImageView.image = image
}
}
}
}
日志:
正如日志显示的那样,请求了第一个图像,而从缓存中获取了第二个图像。无需额外请求,图像立即显示。
我希望当我重新启动应用程序时,即使是从缓存中获取的第一张图片,但 Log 仍然保持不变。我查看了Library/Caches/.../fsCachedData,图像就在那里,可以提取了。
问题: 我在这里缺少什么?我需要在后续请求中从磁盘缓存中获取第一张图像。
【问题讨论】:
-
你在服务器上正确设置了缓存控制头吗?
-
我想获取本地存储的图像,即使缓存控制头没有解决。如果我的理解是正确的,即使离线,我也应该获取存储的图像。不是这里的情况
-
那么你必须明确地使用 AutoPurgingImageCache。在 AlamoFireImage 主页上的自述文件中查找示例。
-
ImageDownloader 默认使用设置
imageCache使用AutoPurgingImageCache。即使从磁盘脱机加载,您也可以运行示例吗? -
聊天链接 404s..?你得出了什么结论?
标签: ios swift alamofire alamofireimage