在快照中附加数组时出现错误。我想从这些数组中检索所有值EngNames
, UrNames
and cakeImages
在快照中,以便值可以显示在表视图单元格上。
但是我可以检索所有值Cake Rate Label
and Eng Name Label
from Firebse
但我想检索所有cakeRatelabel
的值rate
来自 firebase 和其余数据EngNames
, UrNames
and cakeImages
我想分别从资产中定义的数组和图像进行本地检索。
帮助我实现这一目标,任何帮助将不胜感激。
Firebase Structure
![enter image description here](https://i.stack.imgur.com/eo8kz.png)
视图控制器
![enter image description here](https://i.stack.imgur.com/BtLBK.png)
测试表视图控制器
import UIKit
import Firebase
class TestTableViewController: UITableViewController {
@IBOutlet var cakeTableView: UITableView!
var ref = FIRDatabase.database().reference()
struct Cake {
let cakeEngNames: String
let cakeUrNames: String
let cakeImages: UIImage
var cakeRates: String
}
var cakes = [Cake]()
var cakeImages = [UIImage(named : "bakery_almond_cake")!,UIImage(named : "bakery_azna_mental_cake")!, UIImage(named : "bakery_black_forest_cake")!, UIImage(named : "bakery_checker_cake")!, UIImage(named : "bakery_cheese_cake")!, UIImage(named : "bakery_chocolate_cake")!, UIImage(named : "bakery_coconut_macaroni_cake")!, UIImage(named : "bakery_cream_cake")!, UIImage(named : "bakery_cream_layer_cake")!, UIImage(named : "bakery_fruit_cake")!, UIImage(named : "bakery_lemon_layer_cake")!, UIImage(named : "bakery_pineapple_cake")!, UIImage(named : "bakery_plain_cake")!,UIImage(named : "bakery_pulm_cake_almond")!,UIImage(named : "bakery_rich_plum_cake")!,UIImage(named : "bakery_swiss_cake")!]
var EngNames = ["Almond Cake", "Azna cake", "Black forest Cake","checker cake", "cheese cake", "chocolate cake","coconut cake", "cream cake", "cream layer cake", "fruit cake", "lemon cake", "pine apple cake", "plain cake", "plum cake", "rich cake", "swiss cake"]
var UrNames = ["Almond Badam cake", "Azna wala cake", "Black kala forest Cake","checker wala cake", "cheese wala cake", "chocolate wala cake","coconut wala cake", "cream wala cake", "cream wala layer cake", "fruit wala cake", "lemon wala cake", "pine apple wala cake", "plain wala cake", "plum wala cake", "rich wala cake", "swiss wala cake"]
override func viewDidLoad() {
super.viewDidLoad()
let almondSnap = ref.child("Hyderabad").child("Bakery").child("Cake")
almondSnap.observe( .value, with: { (snapshot) in
if snapshot.hasChildren(){
for snap in snapshot.children {
if let node = snap as? FIRDataSnapshot , let rate = node.value as? Int {
self.cakes.append(Cake(cakeEngNames: EngNames,
cakeUrNames: UrNames,
cakeImages: cakeImages,
cakeRates: String(rate)))
}
}
self.cakeTableView.reloadData()
}
})
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.cakes.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier: "TestTableViewCell", for: indexPath) as! TestTableViewCell
cell.cakeImage.image = self.cakes[indexPath.row].cakeImages
cell.cakeEngLabs.text = self.cakes[indexPath.row].cakeEngNames
cell.cakeUrLabs.text = self.cakes[indexPath.row].cakeUrNames
cell.cakeRateLabs.text = self.cakes[indexPath.row].cakeRates
return cell
}
}