簡體   English   中英

如何過濾獲取的數據並加載到tableview中?

[英]How can I filter my fetched data and load into tableview?

我正在使用Firebase數據庫。 我獲取了數據並希望過濾並僅顯示與用戶選擇匹配的信息。

我已經使用條件語句來查找匹配的值並附加列表,但是,我無法加載表。 當我打印變量時,它打印0.需要幫助謝謝。

   override func viewDidLoad() {
    super.viewDidLoad()

    projectlbl.text = "Brand: \((repair?.brand)!) Model: \((repair?.modelNumber)!)"

    refResources = Database.database().reference().child("resources");


    let selectedProject = "\((repair?.modelNumber)!)"


    //observing the data changes
    refResources!.observe(DataEventType.value, with: { (snapshot) in
        //if the reference have some values
        if snapshot.childrenCount > 0 {

            //clearing the list
            self.resourceList.removeAll()

            //iterating through all the values
            for resources in snapshot.children.allObjects as! [DataSnapshot] {
                //getting values
                let resourceObject = resources.value as? [String: AnyObject]
                let id  = resourceObject?["id"]
                let RSSSubCat  = resourceObject?["RSSSubCat"]
                let RSSBrand = resourceObject?["RSSBrand"]
                let RSSModelNumber = resourceObject?["RSSModelNumber"]
                let RSSTitle = resourceObject?["RSSTitle"]
                let RSSUrl = resourceObject?["RSSUrl"]

                //creating resource object with model and fetched values
                let resource = resourceModel(id: id as! String?, RSSSubCat: RSSSubCat as! String?, RSSBrand: RSSBrand as! String?, RSSModelNumber: RSSModelNumber as! String?, RSSTitle: RSSTitle as! String?, RSSUrl: RSSUrl as! String?)

                //appending it to list
                print(snapshot.childrenCount)

                if selectedProject == resource.RSSModelNumber {
                    print(selectedProject)
                    self.resourceList.append(resource)
                    self.diagResTable.reloadData()
                } else {
                    return
                }

            }

            //reloading the tableview
            self.diagResTable.reloadData()
        }
    })

需要改變聽眾......簡單而又被忽視。

       let selectedModelNumber = (self.refResources?.queryOrdered(byChild: "RSSModelNumber").queryEqual(toValue: selectedProject))


    //observing the data changes
    selectedModelNumber!.observe(DataEventType.value, with: { (snapshot) in

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM