У меня проблема с Alamofire Image lib. Я пытаюсь загрузить изображение, а затем убить приложение и отключить Wi-Fi. Поэтому я ожидаю увидеть изображение (в кэше в первый раз), когда я запускаю приложение без подключения, но мое изображение не появляется.Показать кэшированное изображение после перезапуска приложения с помощью AlamofireImage
Вот мой код в простой UIViewController с одним UIImage и одним UIButton, которая позволяет обновить вид только для некоторых тестов:
import UIKit
import AlamofireImage
class ViewController: UIViewController {
@IBOutlet weak var firstImage: UIImageView!
@IBOutlet weak var descriptionLabel: UILabel!
var imageCache: ImageRequestCache = AutoPurgingImageCache()
let urlRequest = URLRequest(url: URL(string: "https://httpbin.org/image/jpeg")!)
@IBAction func refreshView(_ sender: Any) {
self.requestFirstImage()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.requestFirstImage()
}
func requestFirstImage() {
let downloader = self.diskImageDownloader()
downloader.download(self.urlRequest) { response in
if let image = response.result.value {
self.firstImage.image = image
// Add image to cache
self.imageCache.add(image, for: self.urlRequest, withIdentifier: "wolf")
self.descriptionLabel.text = "Image added to cache"
}
}
// If image is stored in cache show it
if let image = self.imageCache.image(for: self.urlRequest, withIdentifier: "wolf") {
self.firstImage.image = image
self.descriptionLabel.text = "Image showed from cache"
} else {
self.descriptionLabel.text = "Impossible to show image from cache"
// call image from disk here
------> Here how read image which is located in alamofireimage_disk_cache subfolder of the app ?
}
}
func diskImageDownloader(diskSpaceMB: Int = 300) -> ImageDownloader {
let diskCapacity = diskSpaceMB * 1024 * 1024
let diskCache = URLCache(memoryCapacity: diskCapacity, diskCapacity: diskCapacity, diskPath: "alamofireimage_disk_cache")
let configuration = URLSessionConfiguration.default
configuration.urlCache = diskCache
let downloader = ImageDownloader(configuration: configuration)
UIImageView.af_sharedImageDownloader = downloader
return downloader
}
}
Заранее спасибо за вашу помощь.
Уважением,
Вы обнаружили ошибку или сообщение в консоли отладки? – Vinodh
Я пробовал ваш код, он отлично работает. Попробуйте установить параметры безопасности приложения в файле info.plist – Vinodh
Привет и сначала спасибо за вашу помощь, но это не работает. Когда я убью свое приложение, отключите соединение устройства и перезапустите его, изображение не будет показано в кеше. Ничего не появляется. Любая другая идея? Я пробовал безопасность на транспорте, но ничего не изменилось. Заранее благодарю вас, С уважением, –