gpt4 book ai didi

ios - Firebase 存储图像不会附加到阵列

转载 作者:行者123 更新时间:2023-11-28 23:21:40 25 4
gpt4 key购买 nike

所以我正在尝试下载一组图像以显示在我的应用程序的 Collection View 中。我在 firebase 存储中有图像,它们在我的数据库中的 url 位于每个项目节点的节点“img”下,子节点“storage”以 url 作为键。

我首先创建一个空的 UIImage 数组:var somePicArray = [UIImage]() 然后通过这个函数将图片附加到这个数组:

func test() {
let penis = Database.database().reference().child("kategorier").child("brus")
penis.observeSingleEvent(of: .value) { (snapshot: DataSnapshot) in
for item in snapshot.children {
let snap = item as! DataSnapshot
let imageSnap = snap.childSnapshot(forPath: "img/storage")
if let url = imageSnap.value as? String {
let someRef = self.storageRef.reference(forURL: url)
someRef.getData(maxSize: 10 * 10024 * 10024) { data, error in
if let error = error {
print(error)
} else {
let image = UIImage(data: data!)
self.testPicArray.append(image!)
self.collectionView?.reloadData()
}
}
}
}
}
}

直到“if let url”行一切正常,因为我已经尝试在此 if 语句中打印 url,并且它完美地将所有 url 打印为字符串。

但是我对第二部分有点不确定。我在我的应用程序的其他地方使用了这段代码来显示来自 firebase 存储的图片,这工作正常。但是它似乎在这个函数中不起作用,我不确定我做错了什么。

为了在单元格中显示图像,我尝试在 collectionview cellforitematindexpath 方法中使用以下代码:

cell.cellimage.image = somePickArray[2] 

我只是在数组中选择了一个随机数,看看我是否可以显示任何图片,但它只是崩溃,说这一行的索引超出范围,我认为这是因为数组是空的。

最佳答案

当vc出现时数组为空所以

cell.cellimage.image = somePickArray[2] 

在数组充满数据之前会崩溃,你需要确保你这样做了

return somePickArray.count 

numberOfItemsAtRow

关于ios - Firebase 存储图像不会附加到阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59581692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com