【问题标题】:I cannot get the data from my snapshot to load into my tableView cells我无法从我的快照中获取数据以加载到我的 tableView 单元格中
【发布时间】:2018-01-29 09:43:04
【问题描述】:
 ref = Database.database().reference()
 ref.child("Clubs").observe(.value, with: { (snapshot : DataSnapshot) in
        print("clubs: \(snapshot)")

        if let childSnapshot = snapshot.value as? [String : AnyObject] {
        print("myClubs: \(childSnapshot)")

从现在开始,我无法将“名称”和“bannerImage”加载到我的 tableView 中

if let clubName = childSnapshot["name"] as? String, let banner = childSnapshot["bannerImage"] as? String {
   print(clubName)
   print(banner)

   let club = Club(name: clubName, image: banner)
   print("new club success: \(club)")

   self.nightClubs.append(club)
   self.tableView.reloadData()
}

【问题讨论】:

  • 用户界面应该在主线程上更新。所以在主线程中重新加载tableview。
  • 我在主线程中添加了它,但它仍然没有加载:(
  • 能否请您发布您的 tableview 数据源和委托方法代码。
  • 请更新以包含您的数据库结构。您可以使用 Firebase 控制台中三个点下的 Export JSON 设置来获取此结构。

标签: ios swift firebase firebase-realtime-database mobile-application


【解决方案1】:

使用这个:-

 ref = Database.database().reference()

   ref.child("Clubs").observe(.value, with: { (snapshot) in
    print("clubs: \(snapshot)")

    if(snapshot.exists()) {
        let array:NSArray = snapshot.children.allObjects as NSArray

        for obj in array {
            let snapshot:FIRDataSnapshot = obj as! FIRDataSnapshot
            if let childSnapshot = snapshot.value as? [String : AnyObject] {
                print("myClubs: \(childSnapshot)")

                if let clubName = childSnapshot["name"] as? String, let banner = childSnapshot["bannerImage"] as? String {
                    print(clubName)
                    print(banner)

                    let club = Club(name: clubName, image: banner)
                    print("new club success: \(club)")
                    self.nightClubs.append(club)
                }
            }
        }
                    self.tableView.reloadData()

    }
}

【讨论】:

  • 您好,非常感谢!该代码工作正常,但现在每当我在数据库中进行更改时,它都会复制我的单元格,将更改应用于一组全新的单元格
  • 从 nightClubs 数组中删除此行之后的所有对象:- let array:NSArray = snapshot.children.allObjects as NSArray
猜你喜欢
  • 2020-01-29
  • 2016-09-06
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
  • 2020-09-10
  • 2020-01-16
  • 1970-01-01
  • 2020-10-20
相关资源
最近更新 更多