我想为特定用户检索我的图像并将它们附加到一个空数组中,这样我就可以将图像显示到集合视图中。我每次都收到一个错误,图像网址显示在调试器中,但它总是崩溃。我不确定什么是返回nil,我不能让它们显示在我的集合视图中
error
Database
var imagesArray: [String] = []
public func numberOfItems(in pagerView: FSPagerView) -> Int {
return imagesArray.count
}
public func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell {
let cell = pagerView.dequeueReusableCell(withReuseIdentifier: "cell", at: index)
cell.imageView?.loadImageUsingCacheWithUrlString(urlString: imagesArray[index])
return cell
}
func getImages(){
Database.database().reference().child("User").child(user.uid).child("images").observe(.value) { (snapshot) in
print(snapshot)
if snapshot.childrenCount > 0 {
for users in snapshot.children.allObjects as! [DataSnapshot] {
let userObject = users.value as? [String: AnyObject]
// let image = userObject?["images"]
// print(image)
self.imagesArray.append(userObject?["images"] as! String)
}
self.pagerView.reloadData()
}else{
print("No Images")
}
}
}
答案 0 :(得分:0)
看起来您正在尝试迭代字典的值,然后在实际为String
时将值转换为字典。请尝试使用此代码:
Database.database().reference().child("User").child(user.uid).child("images").observe(.value) { (snapshot) in
if snapshot.exists() {
let imageInfo = snapshot.value as! [String : String]
for (imageName, imageURL) in imageInfo { // Iterates over each key-value pair
self.imagesArray.append(imageURL)
}
self.pagerView.reloadData()
} else {
print("No Images")
}
}