TableView дублирует изображения? - PullRequest
0 голосов
/ 03 ноября 2018

В моем коде есть следующая функция, которая выбирает изображения из firebase, все делает правильно, но дублирует 2 изображения (в данном случае) при получении.

Редактировать : (Это ниже, вероятно, не тот случай, я полагаю, что это нечто другое, просто основанное на том факте, что попытка нескольких, казалось бы, корректных исправлений не решила проблему).

Кажется, это происходит из-за размещения self.tableView.reloadData() Однако я экспериментировал со многими местами размещения, но все они терпят неудачу.

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

                    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)
                                self.tableView.reloadData()
                            } catch {
                                print("imageURL was not able to be converted into data")
                            }
                        }
                }
            }
            print("hfjdsaklhjfksahalh")
        })
        print(arrayOfImgObj.count)
    }

Вот вывод из консоли:

     Description:  post1 
Description:  oosJPm4MEnWWis5p7p1unCbZxQH3
 inside func 0 Optional({
        image1 = "https://URLIsHere";
        image2 = "https://URLIsHere"; 
}) 
https://URLIsHere 
https://URLIsHere image url here 
https://URLIsHere 
https://URLIsHere image url here
hfjdsaklhjfksahalh

1 Ответ

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

Проблема была в следующем методе TableViewDataSource:

override func numberOfSections(in tableView: UITableView) -> Int {
    return arrayOfImgObj.count
}

После удаления этот код должен работать правильно. Я не уверен, почему это работает, если вы просто оставите комментарий ниже, чтобы мы могли знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...