Я пытаюсь кэшировать изображения из URL-адреса, чтобы сделать мою таблицу более плавной. Кажется, это не кеширование, и я не могу понять, что я делаю неправильно. Может ли кто-нибудь сказать мне, что в этом плохого?Быстрое кэширование изображений
let imageCache = NSCache()
extension UIImageView {
func loadImageUsingCacheWithUrlString(urlString: String) {
self.image = nil
//check cache for image first
if let cachedImage = imageCache.objectForKey(urlString) as? UIImage {
self.image = cachedImage
return
}
//otherwise fire off a new download
let url = NSURL(string: urlString)
NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) in
//download hit an error so lets return out
if error != nil {
print(error)
return
}
dispatch_async(dispatch_get_main_queue(), {
if let downloadedImage = UIImage(data: data!) {
imageCache.setObject(downloadedImage, forKey: urlString)
self.image = downloadedImage
}
})
}).resume()
}
}
Я чувствую, что должен быть еще {перед обжигом с нового скачать, но даже когда я попробовал, что я не думаю, что она работает правильно. Я даже попробовал запустить его таким образом, прокручивая таблицу, чтобы убедиться, что у нее есть возможность кэшировать все изображения, а затем удалить всю часть загрузки, чтобы она загружала только кешированные изображения, и никаких изображений не появилось, поэтому я не думайте, что это на самом деле их кеширование.
Почему люди голодают это? –
Вы хотите, чтобы изображения были сохранены на вашем устройстве, поэтому, если вы закрываете и повторно открываете свое приложение, у вас есть изображения без их повторной загрузки? –
Да, я хочу, чтобы он кэшировал изображения, чтобы таблица плавно прокручивалась. Также я надеялся, что это сделает их доступными в автономном режиме. –