我有一个环境对象,它是一个数组,在我的设置页面中有一个面板,用户可以在其中添加/删除数组中的值...以下是为用户直观显示的数组中的项目列表:< / p>
ScrollView {
VStack {
ForEach(self.env.numbers.indices, id: \.self) { number in
ZStack {
HStack {
Text("#\(number + 1): ")
.font(Font.custom(K.font.montserratMedium, size: 17.0))
.foregroundColor(Color(K.SettingsTextColor))
// Spacer()
NumberTextField(self.env.numbers[number], text: self.$env.numbers[number])
}
}
}
}
}
在我视图的底部,有一个切换按钮,用于更改数组中的项目数:
Stepper(onIncrement: {
self.env.numbers.append("12345")
print("default number should be added")
print(self.env.numbers.indices)
print(self.env.numbers)
print("count = \(self.env.numbers.count)")
},
onDecrement: {
if self.env.numbers.count != 0 {
print("number should be removed")
self.env.numbers.removeLast(1)
// also tried self.env.numbers = self.env.numbers.droplast() but this didnt work
print(self.env.numbers.indices)
print(self.env.numbers)
print("count = \(self.env.numbers.count)")
}
NumberTextField视图是一个UIKit UITextField包装器,似乎可以正常工作。直到我尝试减少步进器,并且得到索引超出范围的错误(这出乎意料地显示了在应用程序委托中发生的错误)之前,所有与此相关的事情都可以正常工作...有什么办法解决此问题?