Я получаю ошибку, связанную с доступом к элементу в массиве с использованием предоставленного индекса в ForEach l oop с SwiftUI.
У меня есть массив информации, который используется для передачи информации в структуру для отображения карты. Мне нужно две из этих карт на HStack, поэтому я перебираю oop по массиву и называю карты так:
ForEach(0..<array.count){item in
Card(name: array[item].name)
Card(name: array[item+1].name)
}
Но это выдает ошибку: The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
Что Я пытаюсь сделать sh набором горизонтальных стеков по 2 предмета в одном VStack. Таким образом, у меня есть список 2 бок о бок карт. Это казалось простым способом просто перебить это поведение, но я продолжаю сталкиваться с ошибкой.
Я, вероятно, просто собираюсь переключиться на другой стиль Hstack, который будет переноситься на следующую строку для каждого третьего добавленного ряда, но я все же хотел бы знать, может ли кто-нибудь сказать мне, почему возникает эта ошибка. Кажется, это такая простая операция, но она не может быть выполнена компилятором
Вот фактический код, который я запускаю, если приведенный выше пример не обрезает его , Самым странным в этом коде является то, что он выходит из строя только после элемента SECOND +1. Я могу запустить это, если я сделаю это только один раз в коде.
ForEach(0..<self.decks.count){item in
HStack(spacing: 30){
if(item+1 < self.decks.count){
StudyCards(cardTitle: self.decks[item].deckTitle, cardAmt: self.decks[item].stackAmount, lastStdy: self.decks[item].lastStudied)
StudyCards(cardTitle: self.decks[item+1].deckTitle, cardAmt: self.decks[item+1].stackAmount, lastStdy: self.decks[item+1].lastStudied)
}
Spacer()
.padding(.bottom, 4)
} else{
StudyCards(cardTitle: self.decks[item].deckTitle, cardAmt: self.decks[item].stackAmount, lastStdy: self.decks[item].lastStudied)
}
}
}