2017-07-14 65 views
1

我在我的數據庫中有一個名爲「Cars」的文件夾,文件夾內是汽車品牌列表,我想檢索所有品牌並將其放入UITableView中。然後,當你按下一個品牌時,它會顯示品牌的型號。目前我無法檢索汽車列表。這是我的數據庫和視圖控制器的代碼的屏幕截圖。如何檢索Firebase數據庫文件夾中的列表?

enter image description here

import UIKit 
import Firebase 
import FirebaseDatabase 
import SDWebImage 

struct carStruct { 
    let cars : String! 

} 

class CarMakeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

    var cars = [carStruct]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     let ref = Database.database().reference().child("Cars") 

     ref.observeSingleEvent(of: .value, with: { snapshot in 
      print(snapshot.childrenCount) 
      for rest in snapshot.children.allObjects as! [DataSnapshot] { 
       guard let value = rest.value as? Dictionary<String,Any> else { continue } 
       guard let make = value["Cars"] as? String else { continue } 
       let cars = carStruct(cars: make) 
       self.cars.append(cars) 
      } 

     self.cars = self.cars.reversed(); self.tableView.reloadData() 
     }) 

    } 

    @IBOutlet weak var tableView: UITableView! 

    func numberOfSections(in tableView: UITableView) -> Int { 
     return 1 
    } 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return cars.count 
    } 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cellMake") 

     let label1 = cell?.viewWithTag(21) as! UILabel 
     label1.text = cars[indexPath.row].cars 

     return cell! 
    } 

} 
+0

當你說你目前無法獲得汽車列表時,當你試圖獲得它們時會發生什麼? –

+0

什麼都沒有出現@JenPerson – Riccardo

+0

這是UI在後臺線程上更新的問題嗎?嘗試像'DispatchQueue.main.async {self.tableView.reloadData()}'。 *免責聲明:沒有完全研究代碼,只是第一件事就跳到我身上。 –

回答

0

我想你應該再拍結構用於保存數據是汽車的模型內(所以,對於這個結構,你應該挖稍微深一點)。至於現在檢索數據,我建議你閱讀this文章,這在不久前幫助了我很多。

相關問題