Как я могу заполнить tableview из массива словаря и разделить его по разделам
Я получаю данные из Firebase, и иногда это может быть null, иногда 2 или 3 элемента. Тип данных - это массив словаря [[String: Int]]. Если у него есть элемент, это может быть, например:
var selectedVariation:[["ice": 20$, "cold": 30$], ["no Choco": 0$, "with Choco": 40$]]
В этом случае я должен разделить представление таблицы в разделе без имени 2. Первый раздел должен содержать ["ice": 20 $, "cold": 30 $], а второй ["no Choco": 0 $, "with Choco": 40 $]
С кодом ниже я могу просто заполнить tableview без разделов и вручную написать numberOfRows
var selectedVariation: [[String:Int]]?
var keysArray: [String] = []
var valueArray: [Int] = []
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return selectedVariation?.count ?? 0
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "VariationCell", for: indexPath) as! VariationTableViewCell
for section in selectedVariation! {
for (key, value) in section.sorted(by: {$0.1 < $1.1}) {
keysArray.append(key)
valueArray.append(value)
}
}
cell.variationName.text = keysArray[indexPath.row]
cell.variationPrice.text = "+" + String(valueArray[indexPath.row])
return cell
}
И бонус будет, если я могу поставить галочку только на один элемент в каждом разделе :)