Karşıdan yüklenen resimleri önbelleğe almak için AlamofireImage kütüphanesini kullanıyorum.Alamofire Images içinde disk önbelleğe alınmış resimleri kullanma
Kodu:
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
}
}
}
}
Giriş: log olarak
ilk görüntü istenir gösterir ve ikincisi önbellekten getirilir. Ekstra bir istek yapılmadı ve görüntü anında gösteriliyor.
Önbellekten getirilen ilk görüntü olan ancak Log
'un aynı kaldığı uygulamayı yeniden başlattığımı umuyorum. Library/Caches/.../fsCachedData
'a baktım ve görüntü orada, alınmaya hazır.
Soru: Burada neleri eksik? İlk görüntünün, sonraki isteklerdeki disk önbelleğinden alınmasına ihtiyacım var.
doğru sunucuda önbellek kontrol başlığını belirlediniz mi? – Curmudgeonlybumbly
Önbellek denetimi başlığı yerleşmemiş olsa bile yerel olarak saklanan resmi almak istiyorum. Anlayışım doğruysa, çevrimdışıyken bile saklanan görüntüyü almalıyım. Durum burada değil –
Sonra AutoPurgingImageCache açık bir şekilde kullanmak zorunda. Readme on AlamoFireImage ana sayfasında bir örnek arayın. – Curmudgeonlybumbly