удаления списка, вылетает ошибка Fatal error: Index out of range
@EnvironmentObject var viewModel: GridViewModel
@EnvironmentObject var listViewModel: ListViewModel
ScrollView {
LazyVGrid(columns: viewModel.items) {
ForEach(0..<listViewModel.lists.count, id: \.self) { index in
NavigationLink(destination: TasksListView(indexOfList: index)) {
GridRowView(index: index)
}
}
}
.alert("Удалить список?", isPresented: $viewModel.isDeleteAlertPresenting) {
Button("Отмена", role: .cancel) {
viewModel.isDeleteAlertPresenting.toggle()
}
Button("Удалить", role: .destructive) {
viewModel.isDeleteAlertPresenting.toggle()
listViewModel.lists.remove(at: viewModel.selectedIndexForDelete)
}
}
.padding()
}
Вышел за пределы массива, так как у тебя ForEach неправильно сконфигурирован. Вместо count должно быть count-1.
У меня же полузма
У меня же полузамкнутый диапозон
Кому можно за помощью в лс написать?
Ошибка "Index out of range" возникает, когда вы пытаетесь удалить элемент из массива по индексу, который находится за пределами доступных индексов массива. В вашем случае, возможно, это связано с несоответствием индексов массива listViewModel.lists и индексов, которые вы используете в ForEach. Чтобы избежать этой ошибки, вам нужно убедиться, что индексы, которые вы передаете в ForEach, находятся в допустимых границах массива listViewModel.lists. Прежде всего, удостоверьтесь, что ваш массив listViewModel.lists действительно содержит элементы в количестве, достаточном для индексов, которые вы используете. Также убедитесь, что изменения в массиве listViewModel.lists синхронизированы с вашим пользовательским интерфейсом. Для более конкретной помощи, мне нужно больше контекста. Пожалуйста, предоставьте следующую информацию: 1. Как у вас настроена ваша модель данных ListViewModel? 2. Как вы инициализируете и обновляете массив listViewModel.lists? 3. Где и как вы используете viewModel.selectedIndexForDelete? Как этот индекс устанавливается перед удалением? 4. Есть ли дополнительные места в вашем коде, где происходит изменение массива listViewModel.lists? 5. Возможно, вы используете асинхронные операции, которые могут влиять на состояние массива во время удаления?
Обсуждают сегодня