ios - 修复 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)
})
解决方案
将代码替换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))
推荐阅读
- c# - 实体框架核心错误?SaveChanges 抛出选择
- debugging - 图像仅在 Safari 中不显示的原因可能是什么?
- intellij-idea - 如何解决 Checkstyle 错误:“方法定义修饰符”缩进不正确
- hive - How to count the column in hive
- android - 如何将单选按钮放在文本旁边?- 颤振
- android - 如何在房间数据库dao中附加两个或多个子查询,而这些子查询存储在变量中
- c++ - 为什么不管括号中输入的值有多高,sleep 都不等待?
- c++ - 即使功能已实现,C++ 架构 x86_64 的未定义符号
- php - 如何将数组放在另一个文件上
- python - Zipline-Trader 加拿大日历和自定义 CSV