Я пытаюсь выяснить, почему мои миниатюры в моем UICollectionView, которые загружаются из firebase, перепрыгивают повсеместно, означая, что иногда они будут в правильных ячейках, а затем иногда дублируются и в неправильных местах.
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! CollectionViewCell
cell.postImage.image = nil
if self.posts[indexPath.row].downloadURL != nil {
cell.postImage.downloadImagezzz(from: self.posts[indexPath.row].downloadURL)
} else {
print("\n \(indexPath.row) could not return a value for pathToImage256 from Post. \n")
}
return cell
}
Мне кажется, что предупреждение "! = Nil" гласит: "Сравнение необязательного значения типа 'String' с nil всегда возвращает true" - это проблема.Нужна помощь.
extension UIImageView {
func downloadImagezzz(from imgURL: String) {
let url = URLRequest(url: URL(string: imgURL)!)
let task = URLSession.shared.dataTask(with: url) {
(data, responds, error) in
if error != nil {
print(error!)
return
}
DispatchQueue.main.async {
self.image = UIImage(data: data!)
}
}
task.resume()
}
}