从Firebase Swift获取数据时出错

时间:2017-11-08 07:43:37

标签: swift uitableview firebase

在这里遇到firebase的问题我无法弄清楚。尝试从Firebase获取数据并将其加载到UITableView中,但似乎在将数据从firebase转换为数组时遇到问题。收到以下错误消息:

' NSUnknownKeyException',原因:' [setValue:forUndefinedKey:]:此类与密钥-KyP-yzMcrvb7Z-PdAp0不符合密钥值编码。'

现在我可以打印出来自' dic'这里显示: [" -KyP-yzMcrvb7Z-PdAp0":asdasd," -KyP-wrMpuHqLQIMSgXI":dsad]。这是FB登录用户进入firebase的价值所以我认为它有转换问题吗?

这是我的模型类: 导入UIKit

class Rentals:NSObject {

var title: String?
var rentalType: String?
var dateAval: String?
var location: String?
var price: String?
var bond: String?
var pets: String?
var descripton: String?

}

这是我的TableViewVC代码,用于从Firebase获取数据并将其放入数组中:

class TableViewVC:UIViewController,UITableViewDelegate,UITableViewDataSource {

@IBOutlet weak var myTableView: UITableView!
var rentalsArr = [Rentals]()
var databaseRef:DatabaseReference?
var handle: UInt!


override func viewDidLoad() {
    super.viewDidLoad()
    databaseRef = Database.database().reference()
    fetchRentalData()

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) ->  UITableViewCell {
    let cell = UITableViewCell(style: .subtitle, reuseIdentifier: "cell")
    cell.textLabel?.text = rentalsArr[indexPath.row].title
    return cell
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    return rentalsArr.count
}

func fetchRentalData(){

    handle = databaseRef?.child("Rentals").observe(.childAdded, with: { (snap) in
        if let dic = snap.value as? [String: AnyObject] {
            print("******\(dic)")
            let rentals = Rentals()

            rentals.setValuesForKeys(dic)
            self.rentalsArr.append(rentals)

            DispatchQueue.main.async {
                self.myTableView.reloadData()
            }




        }
    })



}

}

我花了很多时间试图实现这一目标,所以任何帮助都会非常感激!

谢谢

0 个答案:

没有答案