以下代码从 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")
}
}
}
}
})
}
最佳答案
请确保在开始调用函数时清除数组,因为您正在将数据附加到数组。其次,完成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
}
})
}
关于ios - 从 firebase 获取的图像在将它们添加到 tableViewCells 的过程中被复制了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53093924/