Я использую веб-API для названий продуктов и пищевых категорий.Как я могу сопоставить мой раздел категории завтраков только с завтраками, гамбургерами, десертами, напитками, салатами.Проблема в том, что в каждом разделе есть все продукты снова и снова.
Категория продуктов питания
struct FoodCategory: Decodable {
var id: Int
var Title: String //Category Title
}
Название категории продуктов питания представлено в двух моделях:
Продукты питания
struct Food: Codable {
let id, SubCategoryId: Int
let CategoryTitle: String //Category Title
let Price, OldPrice: Decimal
let ProductTitle: String //Food Name
let Stock: Int
let Details: String
let DetailsList: [String]
}
FoodCategoryServiceResponse
"ResultList": [
{
"id": 1,
"Title": "Kahvaltılar"
},
{
"id": 5,
"Title": "Hamburgerler"
},
{
"id": 6,
"Title": "İçecekler"
},
{
"id": 7,
"Title": "Tatlılar"
},
{
"id": 9,
"Title": "Salatalar"
}
]
FoodServiceResponse
"ResultList": [
{
"id": 114,
"SubCategoryId": 28,
"SubCategoryTitle": "Hafta İçi Kahvaltısı",
"CategoryTitle": "Kahvaltılar",
"Title": null,
"Price": 18,
"OldPrice": 0,
"PriceString": " 18,00 ₺",
"OldPriceString": " 0,00 ₺",
"ProductTitle": "Hafta İçi Kahvaltısı",
"IsIndexView": false,
"Description": "Ekmek Üzeri Çırpılmış Yumurta, 1 Dilim Beyaz Peynir, Çilek Reçeli, 1 Bardak Çay",
"Stock": 0,
} ]
Коды просмотра таблицы
var foodData = [Food]()
var foodCategoryData = [FoodCategory]()
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return foodCategoryData[section].Title
}
func numberOfSections(in tableView: UITableView) -> Int {
return foodCategoryData.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return foodData.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CellForFood") as! MainFoodTitleTableViewCell
let foodList = foodData[indexPath.row]
// let food = foods.filter({$0.category == sections[indexPath.section]})[indexPath.row]
cell.titleLabel.text = foodList.ProductTitle
cell.priceLabel.text = foodList.PriceString
return cell
}