【发布时间】:2021-05-10 19:25:59
【问题描述】:
我是 Swift / SwiftUI 的新手,并尝试在 foreach 期间将文本字段值存储在数组中。但是我遇到了 Thread 1: Fatal error: Index out of range 消息。存储值应该发生在视图(视图模型)之外还是可以在视图内完成??
struct OrderView: View {
@Binding var groupsize: Int
@State var nameArray = [String]()
var body: some View {
VStack {
ForEach(0 ..< groupsize) { index in
TextField("Insert name", text: $nameArray[index])}
}
}
}
【问题讨论】:
-
为什么不用
nameArray.count替换groupsize? -
这是因为我要存储的值的数量取决于来自上一个视图的
groupsize变量。 -
groupsize>nameArray.count这是这里的问题 -
做
ForEach(0 ..< groupsize - 1),但正如@George_E 提到的,这可能不是一个好的设计选择 -
@aheze 这不起作用