【问题标题】:Fix the Firebase Tableview data display修复 Firebase Tableview 数据显示
【发布时间】:2019-10-08 15:57:46
【问题描述】:

我正在设置UITableView 以在我的应用程序上显示数据库内容。 不幸的是,该信息没有显示并且它使应用程序崩溃。

给出的错误是:

线程 1:致命错误:打开包装时意外发现 nil 可选值

    typealias ItemInfo = (Titulo: String, Description: String, Rating: String, photo: String, email: String, location: String, telefone: String, Linkdetalhes: String)

  fileprivate var items: [ItemInfo]! = [( "Titulo","Description","Rating","photo","email","location","telefone", "Linkdetalhes")]


   (UIApplication.shared.delegate as! AppDelegate).fireBaseRef.observe(.value, with: { snapshot in
            let dictRoot = snapshot.value as? [String : AnyObject] ?? [:]
            let dictAliances = dictRoot["Eventos"] as? [String: AnyObject] ?? [:]
            for key in Array(dictAliances.keys) {
                let alianceDic = dictAliances[key]
                self.items.append(( alianceDic!["Title"] as! String, alianceDic!["photo"] as! String, alianceDic!["Description"] as! String, alianceDic!["Rating"] as! String, alianceDic!["email"] as! String, alianceDic!["location"] as! String, alianceDic!["telefone"] as! String, alianceDic!["Linkdetalhes"] as! String))

                self.tableView?.reloadData()
            }
            print(dictAliances)
        })

【问题讨论】:

标签: ios swift firebase firebase-realtime-database tableview


【解决方案1】:

将代码as! String 替换为as? String。请参阅以下内容。忽略强制展开。它可能在字典中找到空值或缺少键值。

self.items.append(( alianceDic!["Title"] as? String, alianceDic!["photo"] as? String, alianceDic!["Description"] as? String, alianceDic!["Rating"] as? String, alianceDic!["email"] as? String, alianceDic!["location"] as? String, alianceDic!["telefone"] as? String, alianceDic!["Linkdetalhes"] as? String))

【讨论】:

  • 检查一次字典数据,是否正确?
  • init(dictionary: [String: AnyObject], key: String) { self.key = key self.Title = dictionary["Title"] as! String self.Description = dictionary["Description"] as! String self.photo = dictionary["photo"] as! String self.Rating = dictionary["Rating"] as! String self.email = dictionary["email"] as! String self.location = dictionary["location"] as! String self.telefone = dictionary["telefone"] as!字符串 self.linkdetalhes = 字典 [“linkdetalhes”] 作为!字符串 }
猜你喜欢
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
  • 2018-04-07
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 1970-01-01
相关资源
最近更新 更多