Я определяю var dictImages = NSMutableDictionary()
, чтобы хранить загруженные изображения и не загружать более одного раза, но когда я удаляю строку из tableView
в Firebase
, изображения скользят.Я понял, что проблема в dictImages
.Единственный способ предотвратить эту ошибку - написать
dictImages.removeAllObjects()
перед загрузкой изображений, но в этом случае нет смысла хранить изображения, и это неэффективно.Мне нужно выяснить ранее сохраненный элемент и удалить его.
Этот код записан в cellForRowAt
функции tableView
:
if let image = self.dictImages.object(forKey: indexPath)
{
cell?.newsImg.image = image as? UIImage
}
else{
storageRef.getData(maxSize: 1 * 1024 * 1024) { data, error in
if let error = error {
print(error)
} else {
if let data = data
{
let image = UIImage(data: data)
self.dictImages.setObject(image, forKey: indexPath as NSCopying)
cell?.newsImg.image = image
}
}
}