Как сгруппировать объект окружающей среды (массив словарей) в SwiftUIIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как сгруппировать объект окружающей среды (массив словарей) в SwiftUI

Сообщение Anonymous »


Я пытаюсь отобразить группу разделов в списке SwiftUI.

Ниже мой код

Файл ContentView.Swift структура ContentView: Просмотр { @EnvironmentObject var appData: FoodItemData Имя частной переменной @State: String = "" var body: some View { Список() { ВСтек { ForEach(returnGroupdDate(dataa: $appData.userData)) {$product в Раздел(заголовок: Текст(product.countryName).font(.title).foregroundColor(.red)) { HStack(выравнивание: .top) { Изображение(product.foodImage).resizable() .scaledToFit() .frame(ширина: 100, высота: 100) VStack(выравнивание: .leading, интервал: 2){ Текст(product.foodName).font(.title3) Разделитель() Text("рупий \(product.foodPrice)").font(.title3).padding(.bottom) Текст("Кал. \(product.foodCalories)").font(.title3) }.padding(.top, 5) VStack(выравнивание: .leading, интервал: 5) { Image(systemName: product.isSelected? "checkmark.square": "square").onTapGesture { продукт.isSelected.toggle() }.imageScale(.large) Разделитель() Image(systemName: product.isFavourited? "heart.fill": "heart").onTapGesture { Product.isFavourited.toggle() }.imageScale(.large) } Разделитель() } Разделитель() } } .padding() Разделитель() } } } func returnGroupdDate(dataa: FoodItemData) -> [String: [FoodItemsViewModel]] { let StudentByLetter = Dictionary (группировка: appData.userData, by: { $0.foodName }) } } структура ContentView_Previews: PreviewProvider { статические предварительные просмотры var: some View { ContentView().environmentObject(FoodItemData()) } } структура CheckBoxView: Просмотр { @Binding var проверено: Bool var body: some View { Изображение (имя системы: отмечено? «checkmark.square.fill»: «квадрат») .foregroundColor(проверено? Цвет(UIColor.systemBlue): Color.вторичный) .onTapGesture { self.checked.toggle() } } } func groupByCategory(_ items: [FoodItems]) -> [(String, [FoodItems])] { let grouped = Dictionary (группировка: элементы, по: { $0.foodName }) return grouped.sorted(by: { $0.key < $1.ключ }) } Файл FoodItemData.Swift импортный фонд структура FoodItems: Hashable { var foodName: String var CountryName: String вар едаЦена: двойная вар едаКалории: Int var foodImage: String вар isSelected: Bool вар isFavourites: Bool } struct FoodItemsViewModel: Идентифицируемый, Хешируемый { пусть идентификатор = UUID() вар foodItems: FoodItems вар foodName: String { вернуть foodItems.foodName.с заглавной буквы } вар CountryName: String { вернуть foodItems.countryName.capitalized } вар foodPrice: Int { return Int(foodItems.foodPrice) } вар foodCalories: Int { return Int(foodItems.foodCalories) } вар foodImage: String { вернуть foodItems.foodImage } вар isSelected: Bool { получать { вернуть foodItems.isSelected } набор { foodItems.isSelected = новое значение } } вар isFavourited: Bool { получать { вернуть foodItems.isFavourited } набор { foodItems.isFavourited = новое значение } } } класс FoodItemData: ObservableObject { @Published var userData: [FoodItemsViewModel] в этом() { пользовательские данные = [ FoodItemsViewModel(foodItems: FoodItems(foodName: «India Food 1», CountryName: «Indian», foodPrice: 500, foodCalories: 100, foodImage: «IndiaFood1», isSelected: false, isFavourited: false)), FoodItemsViewModel(foodItems: FoodItems(foodName: «India Food 2», CountryName: «Indian», foodPrice: 600, foodCalories: 90, foodImage: «IndiaFood2», isSelected: false, isFavourited: false)), FoodItemsViewModel(foodItems: FoodItems(foodName: «USA Food 1», CountryName: «Chineese», foodPrice: 1000, foodCalories: 80, foodImage: «USAFood1», isSelected: false, isFavourited: false)), FoodItemsViewModel(foodItems: FoodItems(foodName: «USA Food 2», CountryName: «Chineese», foodPrice: 900, foodCalories: 68, foodImage: «USAFood2», isSelected: false, isFavourited: false)), FoodItemsViewModel(foodItems: FoodItems(foodName: "Русская еда 1", странаName: "Русская", foodPrice: 1200, foodCalories: 79, foodImage: "russianFood1", isSelected: false, isFavourited: false)), FoodItemsViewModel(foodItems: FoodItems(foodName: "Русская еда 2", CountryName: "Русская", foodPrice: 1100, foodCalories: 200, foodImage: "russianFood2", isSelected: false, isFavourited: false)), FoodItemsViewModel(foodItems: FoodItems(foodName: «Немецкая еда 1», CountryName: «Немецкий», foodPrice: 1100, foodCalories: 190, foodImage: «Немецкая еда1», isSelected: false, isFavourited: false)), FoodItemsViewModel(foodItems: FoodItems(foodName: «Немецкая еда 2», CountryName: «Немецкий», foodPrice: 1100, foodCalories: 90, foodImage: «Немецкая еда2», isSelected: false, isFavourited: false)), ] } } Я получаю следующие ошибки:

Невозможно преобразовать значение типа «[String: [FoodItemsViewModel]]» в ожидаемый тип аргумента «Привязка»

Невозможно преобразовать значение типа «Binding» в ожидаемый тип аргумента «FoodItemData». Есть предложения?

Я хотел бы показать пример списка групп
Изображение

Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Установка окружающей среды для Swiftui
    Anonymous » » в форуме IOS
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Преобразование списка словарей в набор словарей
    Anonymous » » в форуме Python
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Я не могу узнать температуру окружающей среды на своем телефоне
    Гость » » в форуме Android
    0 Ответы
    49 Просмотры
    Последнее сообщение Гость
  • Как остановить отслеживание стека в файле журналов окружающей среды? [закрыто]
    Anonymous » » в форуме Php
    0 Ответы
    70 Просмотры
    Последнее сообщение Anonymous
  • Подключение PHP к MySQL для установки кода окружающей среды и VS.
    Anonymous » » в форуме Php
    0 Ответы
    59 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»