Post
Empty Lobster Comfortable Beetle filter und forEach laufen gleichzeitig (bzw. immer, wenn filter ein Objekt ausspuckt, wird forEach direkt aufgerufen). Daher löscht der Body von forEach das erste Objekt, bevor filter beendet ist.
filter ist vermutlich etwas in der Art:
for i in 0..<nodes.count { // Anzahl vor dem Löschen!
if callback(nodes[i]) {
emit(nodes[i])
}
}
Gegentest:
try realm.write {
let tmp = self.nodes.filter { nodes.contains(object: $0) }
tmp.forEach { realm.delete($0) }
}
0
0
0