Я загружаю изображения из RESTApi в Netflix, такой как ScrollView.
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ccell", for: indexPath) as! CollectionCell
cell.imageView.image = nil
cell.labelText.text = self.data[indexPath.row].kategorie
cell.model = self.data[indexPath.row].model!
cell.progressHud.startAnimating()
let url = self.data[indexPath.row].thumbnail_image_name
if let imageFromCache = imageCache.object(forKey: url as AnyObject) as? UIImage{
cell.imageView.image = imageFromCache
}else{
Download.fetchPhoto(id: 1, url: self.data[indexPath.row].thumbnail_image_name) { (image) in
DispatchQueue.main.async {
cell.imageView.image = image
cell.progressHud.stopAnimating()
}
self.imageCache.setObject(image, forKey:url as AnyObject)
}
}
return cell
}
Я кэширую изображения в ImageCache. Все идет нормально. Проблема в том, что каждый раз, когда я открываю TableviewController, задача загрузки начинается заново. Какова была бы лучшая практика для сохранения изображений после их загрузки, даже после закрытия существующего vc.
Сохранить их на устройстве? при отклонении отправляете кеш обратно представившему vc?
Может быть, у вас есть идеи.
Спасибо!