我有一个Date()
数组,在我的Form
中可以向该数组追加更多日期。
@State private var dates: [Date] = [Date()]
但是当我尝试删除日期时,它会导致崩溃。 Index out of range
。我只剩下1个日期时就禁止删除,所以这不是问题,因为此时您无法删除。
Section(header: Text("Notifications")) {
ForEach(dates, id: \.self) { date in
let value = dates.firstIndex(of: date)!
DatePicker("\(value + 1)", selection: $dates[value], displayedComponents: .hourAndMinute)
}.onDelete(perform: { (offsets) in
dates.remove(atOffsets: offsets)
})
.deleteDisabled(dates.count <= 1)
Button(action: {
dates.append(Date())
}, label: {
Text("Add Notification")
}).disabled(dates.count == 10)
}
为什么会崩溃?