SwiftUI Binding Error: Why does this not work?

SwiftUI Binding Error: Why does this not work?

我在以下 SwiftUI 代码片段中设置 Binding 时遇到问题。我正在 xCode Beta 7 ((11M392r).

上尝试这个

在下面的代码片段中,我创建了 2 个 Stepper 视图。

如果我将 $student.totalMarks 传递给 Stepper,它会工作并创建正确的绑定。

但是如果我尝试访问 $student.marks.score1,那将不起作用并显示以下编译错误:

Generic parameter 'Subject' could not be inferred.

有没有办法将单个字段从嵌套 属性 传递到绑定中?

struct Marks {
    public let score1: Int
    public let score2: Int
    public let score3: Int
}

class Student: ObservableObject {
    @Published var totalMarks: Int = 145
    @Published var marks = Marks(score1: 67, score2: 56, score3: 64)
}

struct ContentView: View {
    @ObservedObject var student = Student()

    var body: some View {
        return VStack {
            Stepper("Total Score: \(student.totalMarks)", value: $student.totalMarks)
            Stepper("Score 1: \(student.marks.score1)", value: $student.marks.score1)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

简单。 ;-) 不要将常量用于步进器的值绑定。而是让你的分数变量(在结构 Marks 中使用 var 而不是 let)。