【问题标题】:Reading data from Firebase to TableView从 Firebase 读取数据到 TableView
【发布时间】:2017-06-09 18:19:15
【问题描述】:

我尝试将数据库中的数据提取到TableView。 当我访问数据时,我收到错误:“类型'Any'没有下标成员”。这是不起作用的代码:

        let title = snapshot.value!["Title"] as! String
        let location = snapshot.value!["Location"] as! String
        let date = snapshot.value!["Date"] as! String

我对每一行都得到相同的错误。

【问题讨论】:

    标签: swift firebase firebase-realtime-database tableview


    【解决方案1】:

    如果您在 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如果它失败将这些变量设置回默认值。

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-25
        • 1970-01-01
        • 2018-04-11
        • 2020-05-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多