我是 Swift 和 SwiftUI 的新手,我遇到了一个我无法理解的错误。
这是我从 Web 服务使用 JSON 加载的类
class ResaListViewModel: ObservableObject {
@Published var resasDeparts = [ResaViewModel]()
init() {
WSResa().getDeparts { resas in
if let resas = resas as? [Resa] {
self.resasDeparts = resas.map(ResaViewModel.init)
}
}
}
}
class ResaViewModel: Identifiable, ObservableObject {
@Published var resa: Resa
init(resa: Resa) {
self.resa = resa
}
var id: Int {
return Int(self.resa.id)!
}
var nbveh: Int
{
return Int(self.resa.nbveh) ?? 0
}
}
在一个视图中,我想绑定 nbveh 属性并使用按钮增加和减少它。
错误是:“无法分配给属性:'nbveh' 是一个 get-only 属性”
struct ResaDetail: View {
@ObservedObject var resa:ResaViewModel
var body: some View {
vehiculeView(nbveh: $resa.nbveh)
}
struct ResaView: View {
let resaListVM = ResaListViewModel()
var body: some View {
List(self.resaListVM.resasDeparts, id: \.id) { resa in
NavigationLink(destination: ResaDetail(resa: resa)) {
ResaList(resa: resa)
}
}
} .navigationBarTitle(Text("Réservations"))
}
如何使此属性可编辑和可绑定?
感谢您的任何帮助
——戈德弗罗伊