我正在为我提供不同的变量的类。其中之一是这样的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
}
我真的很难解决问题。.希望有人能帮助我!谢谢大家!