几个月前我写了这个应用程序,它从Firebase检索数据并在TableViewCell中显示它们。今天打开这个项目,我正面临着这个
致命错误:在解包可选值时意外发现nil
其实我不知道该怎么做。
产生问题的代码行如下:
if snapshot.exists()
{
self.acceptedQuests.append(InfoQuest(rest.key, quest?["name"] as! String, quest?["description"] as! String, quest?["image"] as! String))
print(self.acceptedQuests.count)
self.tableView!.reloadData()
}
任何帮助都将非常感激。
答案 0 :(得分:0)
您在投射任务元素时或引用表视图时发生了错误。如果你的桌面视图为零,我会感到惊讶所以当你施放时可能会发生这种情况。这是一个保护声明可以很好地运作的例子
if snapshot.exists()
{
guard let name = quest?["name"] as? String,
let description = quest?["description"] as? String,
let image = quest?["image"] as? String,
let tableView = self.tableView else
{
// One of those values was either nil or could not become a String
return
}
self.acceptedQuests.append(InfoQuest(rest.key, name, description, image))
print(self.acceptedQuests.count)
tableView.reloadData()
}
这将阻止您访问零项目。如果任何强制转换失败或任何值为nil,则else块将执行并返回