Вы получаете offset
одного массива, но пытаетесь применить его к другому ... на самом деле не будет работать.
Вместо этого это должно быть сделано, как
let sorted = userData.fruits_and_vegetables.sorted { $0.item < $1.item}
...
ForEach(sorted) { grocery in
DetailCardView(item: grocery.item, itemCount: grocery.count)
}.onDelete { (offset) in
for i in offset {
if let found = self.userData.fruits_and_vegetables.firstIndex(where: { $0 == sorted[i] }) {
self.userData.fruits_and_vegetables.remove(at: found)
}
}
}
и лучше переместите sorted
и содержимое onDelete
в класс userData
.