核心数据+ SwiftUI:无法将'Bool'类型的值转换为预期的参数类型'Binding <Bool>'

时间:2020-06-16 07:21:49

标签: swift list toggle

我需要一些带有切换的列表。我从核心数据实体获得的列表数据。

这是我的代码

// 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给我错误:无法将'布尔'类型的值转换为预期的参数类型'绑定'

需要做什么?

1 个答案:

答案 0 :(得分:0)

我为我的案件找到了解决办法

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)
              }
        }
 }

只有我不懂一行代码: 设置:{p in self.myProducts [index] .productStatus = p}

有人可以向我解释吗?