Изображения, полученные из firebase, дублируются в процессе добавления их в tableViewCells? - PullRequest
0 голосов
/ 01 ноября 2018

Следующий код выбирает изображения из firebase, но неправильно дублирует два изображения. Я думаю, что это связано с размещением self.tableView.reloadData() Ни одного из мест размещения, которые я пробовал работать. Кто-нибудь может дать мне предложения?

    func fetchAllUsersImages() {
    print("inside func")
    self.ref.child("Posts").child(self.userID).child(self.postNum).observe(.childAdded, with: { snapshot in
        if let snapShotValue = snapshot.value as? [String: String] {
            for (_, value) in snapShotValue {
                if let imageURL = URL(string: value) {
                    print(imageURL, "image url here")
                    do {
                        let imageAsData = try Data(contentsOf: imageURL)
                        let image = UIImage(data: imageAsData)
                        let ImageObject = Image()
                        ImageObject.image = image
                        self.arrayOfImgObj.append(ImageObject)
                    } catch {
                        print("imageURL was not able to be converted into data")
                    }
                }
            }
        }
    })
}

1 Ответ

0 голосов
/ 01 ноября 2018

Убедитесь, что вы очищаете массив при начале вызова функции, потому что вы добавляете данные в массив. Во-вторых, перезагрузите таблицу после завершения цикла for.

func fetchAllUsersImages() {
    self.arrayOfImgObj.removeAll() // clean the array

    self.ref.child("Posts").child(self.userID).child(self.postNum).observe(.childAdded, with: { snapshot in
        if let snapShotValue = snapshot.value as? [String: String] {
            for (_, value) in snapShotValue {

            }
            tableView.reloadData() // reload view
        }
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...