Следующий код причиняет мне неудобство.
struct HistoryView: View {
@ObservedObject var history: History
var body: some View {
List {
ForEach(history.getSessions()) { sess in
Text("Duration: \(sess.duration)")
}.onDelete(perform: self.onDelete)
}
}
private func onDelete(_ indexSet: IndexSet) {
...
}
}
Проблема в том, что History
- это очень асинхронная вещь. Это модель, подключенная к CloudKit. Это может быть получение обновлений в фоновом режиме. В идеале, если он обновится, этот View
будет обновлен немедленно, и индексы все равно будут точными, но я бы предпочел получить набор идентификаторов для удаления, а не набор индексов. Есть ли способ сделать это? Примечание: эти «сеансы истории» соответствуют Identifiable
, как того требует ForEach
, поэтому все они имеют идентификаторы. В моем случае они UUIDs
.