我的代码中有以下函数,它从 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
最佳答案
问题出在下面的 TableViewDataSource 方法上:
override func numberOfSections(in tableView: UITableView) -> Int {
return arrayOfImgObj.count
}
删除此代码后,代码应该可以正常工作。我不确定为什么会这样,如果您这样做,请在下面发表评论,以便我们知道。
关于ios - TableView 复制图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53127447/