到目前为止,基本上我得到的是一个同时存储“ productNames”和“ brandNames”的数组以及一个如下所示的Firebase数据库:
烟草
现在,我将尝试使其尽可能简单,并仅向您显示我正在努力的代码,这是这一部分: 在课堂上,我写了:
var ShopCells: [ShopCell] = []
在viewDidLoad中:
ShopCells = createArray()
然后执行此功能:
func createArray() -> [ShopCell] {
var tempShopCells: [ShopCell] = []
let rootRef = Database.database().reference()
let query = rootRef.child("tobaccos").queryOrdered(byChild: "name")
query.observeSingleEvent(of: .value) {
(snapshot) in
for child in snapshot.children.allObjects as! [DataSnapshot] {
let value = child.value as? NSDictionary
let name = value?["name"] as? String ?? ""
let brand = value?["brand"] as? String ?? ""
print(name)
print(brand)
tempShopCells.append(ShopCell(productName: name, brandName: brand))
}
}
return tempShopCells
}
我想拥有的是每支烟草及其名称,品牌的阵列,以便我可以在表格视图中显示这些烟草。 但是无论我尝试什么,该数组似乎都是空的。我发现在循环之外使用硬编码的String编写... append()确实可行,但在循环内部却无法这样做,因为循环的代码行要少得多。 到底是什么问题?