首页 > 解决方案 > 修复 Firebase Tableview 数据显示

问题描述

我正在设置一个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)
        })

标签: iosswiftfirebasefirebase-realtime-databasetableview

解决方案


将代码替换as! Stringas? 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))

推荐阅读