Сохранить изображения в NSCache после завершения приложения - PullRequest
1 голос
/ 06 марта 2020

В настоящее время я разрабатываю приложение 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(), даже если я закрою приложение?

...