我尝试将数据库中的数据提取到TableView
。
当我访问数据时,我收到错误:"输入'任何'没有下标成员"。这是不起作用的代码:
let title = snapshot.value!["Title"] as! String
let location = snapshot.value!["Location"] as! String
let date = snapshot.value!["Date"] as! String
每个行都会出现相同的错误。
答案 0 :(得分:0)
snapshot.value
的类型为Any?
。
尝试这样做(optional unwrapping & type casting):
if let valueDictionary = snapshot.value as? [AnyHashable:String]
{
let title = valueDictionary["Title"]
let location = valueDictionary["Location"]
let date = snapshot.value!["Date"]
}
如果该字典中还有其他类型(例如本地Date
对象而不是String
),请将字典声明为[AnyHashable:Any]
,然后您需要明确像以前一样设置变量的类型(例如let title = valueDictionary["Title"] as! String
)
答案 1 :(得分:0)
如果要在TableViewController中进行firebase调用,可以在Firebase侦听器中执行此操作:
if let value = snapshot.value as? NSDictionary{
if let titleValue = value["Title"] as? String{
title = titleValue
}
if let locationValue = value["Location"] as? String{
location = locationValue
}
if let dateValue = value["Date"] as? String{
date = dateValue
}
}
然后显然你有else
如果失败则将这些变量设置回默认值。