Core Data + SwiftUI: невозможно преобразовать значение типа Bool в ожидаемый тип аргумента Binding <Bool> - PullRequest
0 голосов
/ 16 июня 2020

Мне нужен список с переключателями. Данные для списка, который я получил от объекта Core Data.

Это мой код

// get array products from Core Data
@FetchRequest(fetchRequest: Products.getAllProducts()) var myProducts: FetchedResults<Products>

// here I try to show List
List(myProducts.indices) { index in
    Toggle(isOn: self.myProducts[index].productStatus) {
        Text(self.myProducts[index].productName)
        }
}

Атрибут isOn дает мне ошибку: не удается преобразовать значение типа Bool в ожидаемый тип аргумента Binding '

Что делать?

1 Ответ

0 голосов
/ 16 июня 2020

Я нашел решение для своего случая

ForEach(myProducts.indices){ index in
    Toggle(isOn:
        Binding<Bool>
         (get: {return self.myProducts[index].productStatus},
          set: { p in self.myProducts[index].productStatus = p}
         )) {
              Text(self.myProducts[index].productName)
         }
         .onTapGesture {
              self.myProducts[index].productStatus.toggle()
              do{
                  try self.managedObjectContext.save()
              }catch{
                  print(error)
              }
        }
 }

Только я не понимаю одну строчку кода: set: {p in self.myProducts [index] .productStatus = p}

Кто-нибудь может мне объяснить?

...