我有一个ForEach块和一个Stepper嵌入在List视图中。List视图第一部分的内容如下:
ForEach(record.nodes.indices, id: \.self) { index in
HStack {
TextField("X", text: self.$record.nodes[index].xString)
Spacer()
Divider()
TextField("Y", text: self.$record.nodes[index].yString)
Spacer()
}
}
Stepper("± node", onIncrement: {
self.record.nodes.append(Node(x: 0, y: 0))
}, onDecrement: {
self.record.nodes.removeLast()
})
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,在调用 时self.record.nodes.removeLast(),应用程序因Index out of range错误而崩溃。我一直试图解决这个问题几个小时,但无济于事。
我最初使用onDelete,但是产生了同样的问题。
该项目可以在https://github.com/jacobcxdev/Timekeeper找到,此错误发生在RecordDetailView.swift 中。
我希望我能清楚地解释我的问题。
我想通过切换从列表中选择一些课程,但无论我尝试过什么,它都不起作用。
我应该做些什么?
感谢您的时间。最好的,穆拉特
struct SubjectCardsView: View {
// MARK: - Properties
@State var courses: [Course] = Bundle.main.decode("courses.json")
@State private var toggle: Bool = false
// MARK: - Body
var body: some View {
NavigationView {
List {
ForEach(courses) { course in
Section(header: Text(course.title).font(.system(size: 15, weight: .medium, design: .rounded)).foregroundColor(.blue)) {
ForEach(course.courseName, id: \.name) { item in
Toggle(isOn: $toggle, label: {
Text(item.name)
})
}
}
}
}
.listStyle(InsetGroupedListStyle())
.navigationBarTitle("Choose your subject", displayMode: .inline).font(.system(size: 16, weight: .medium, design: .rounded))
.navigationBarItems(leading: Button(action: { …Run Code Online (Sandbox Code Playgroud)