无法通过Firebase的完成功能外部的索引访问Struct元素

时间:2019-08-31 20:38:12

标签: arrays swift firebase class uitableview

我正在为我提供不同的变量的类。其中之一是这样的Struct数组:

class live {

    struct Objects {

        var sectionName : String!
        var sectionObjects : [String]!
    }

    var objectArray = [Objects]()
....

}

Struct是使用我的数据字典(来自Firebase的数据库)生成的。

 for (key, value) in self.livesDict {
                self.objectArray.append(Objects(sectionName: key, sectionObjects: value))
 }

在ViewController中,我绝对可以在我的Firebase查询的完成函数中的viewDidLoad函数内部读取Struct数组:

        bars.getBarsList(bid: barDID, completion: { message in
            self.BarTableView.reloadData()
            print("Full array of Struct: \(self.bars.objectArray)")
            // Print "[HOTPOT.live.Objects(sectionName: Optional("septembre 2019"), sectionObjects: Optional(["jsvVJAxLSZyZNC9ynUtY", "KP7ZAOltRzUWzoTREfY1"]))]" as expected
            print("number of rows for section 0 : \(self.bars.objectArray[0].sectionObjects.count)")
            // Print "number of rows for section 0 : 2" as expected
        })

但是,如果我尝试在numberOfRowsInSection Tableview函数中使用count函数,则会收到“线程1:致命错误:索引超出范围”。

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
       print("Full array of Struct: \(self.bars.objectArray)")
        // Print "[HOTPOT.live.Objects(sectionName: Optional("septembre 2019"), sectionObjects: Optional(["jsvVJAxLSZyZNC9ynUtY", "KP7ZAOltRzUWzoTREfY1"]))]" as expected
        print("number of rows for section 0 : \(self.bars.objectArray[0].sectionObjects.count)")
        // Gives me a "Thread 1: Fatal error: Index out of range" error

    return bars.livesGIDS.count
    // I'd to change this with my self.bars.objectArray[0].sectionObjects.count to implement sections in my TableView
}

我真的很难解决问题。.希望有人能帮助我!谢谢大家!

0 个答案:

没有答案