В настоящее время я разрабатываю приложение iOS, в котором много изображений. Я использую NSCache()
для хранения изображений.
Итак, каждый раз, когда я загружаю приложение, изображения загружаются, сохраняются в кеше и остаются в кеше до тех пор, пока я не закрою приложение.
Я ищу решение, в котором изображения будут сохранены, даже если вы закроете приложение, просто загрузите, если изображение не существует в текущем NSCache()
.
Это используется в начале расширения:
let imageCache = NSCache<AnyObject, AnyObject>()
А потом у меня есть расширение с такой функцией:
extension UIImageView {
func downloadImages(from urlString: NSString){
//Check for cached images and return out if found
if let cachedImage = imageCache.object(forKey: urlString) as? UIImage{
print("cache?", imageCache)
self.image = cachedImage
return
}
//Retrieve the images from Firebase Storage
let url = URL(string: urlString as String)
//Create an URL session
URLSession.shared.dataTask(with: url!) { (data, response, err) in
if let err = err{
print(err.localizedDescription)
}
//Continue on background thread
DispatchQueue.main.async {
//Check if image exists
if let downloadedImage = UIImage(data: data!){
//Add image to cache
imageCache.setObject(downloadedImage, forKey: urlString)
//Set the image to downloaded image.
self.image = downloadedImage
}
}
}.resume()
}
}
Кэш изображений работает до тех пор, пока я не закрою приложение. Можно ли как-нибудь сохранить NSCache()
, даже если я закрою приложение?