ich benutzerdefinierte CollectionView
Zelle haben und auf die Schaltfläche tippen ich closure
nenne dieWarum IndexPath unterscheidet sich in Clouser
unten unter cellForItem
implementiert ist, ist Code
cell.closeImageTappped = { [weak self] cell in
guard let strongSelf = self else {
return
}
if let objectFirst = strongSelf.selectedFiles.first(where: {$0.fileCategory == cell.currentSelectedCellType && $0.fileName == cell.currentObject?.fileName}) {
cell.imgPicture.image = nil
cell.imgPlusPlaceHolder.isHidden = false
objectFirst.removeImageFromDocumentDirectory()
strongSelf.selectedFiles.remove(at: strongSelf.selectedFiles.index(where: {$0.fileName == objectFirst.fileName})!)
strongSelf.arraySource[indexPath.section].rows.remove(at: indexPath.row)
strongSelf.collectionViewSelectFile.performBatchUpdates({
strongSelf.collectionViewSelectFile.deleteItems(at: [indexPath])
}, completion: nil)
}
}
App-Abstürze in einigen Fällen, wie wenn ich Pressen der Nähe zu mehreren Zellen schnell
Absturz hier
strongSelf.arraySource[indexPath.section].rows.remove(at: indexPath.row)
fatal error: Index out of range
Wenn ich überprüfen Reihen
▿ 11 Elemente - 0: 0 - 1: 1 - 2: 2 - 3: 3 - 4: 4 - 5: 5 - 6: 6 - 7: 7 - 8: 8 - 9: 8 - 10: 8
Während indexPath ist
po indexPath ▿ 2 elements - 0 : 0 - 1 : 11
Wenn ich indexPath wie diese zu erhalten zeigt es mir richtig IndexPath
self?.collectionViewSelectFile.indexPath(for: cell) ▿ Optional<IndexPath> ▿ some : 2 elements - 0 : 0 - 1 : 9
Aber warum IndexPath
unterscheidet dann self?.collectionViewSelectFile.indexPath(for: cell)
Unrelated aber was ist das Schwach selbst, starke Selbst zurück und her für? Wenn 'self' jemals' nil' wäre, könntest du den Knopf nicht drücken, weil es außerhalb des Bildschirms wäre. Es ist absolut sicher, '[unowned self]' zu verwenden. In Bezug auf das Problem denke ich, dass die Indexpfade nach dem Löschen einer Zelle nicht korrekt aktualisiert werden. – vadian
Woher kommt 'indexPath'? Ist es von außerhalb der Schließung? – Paulw11
@vadian ** Unzusammenhängend, aber was ist das schwache Selbst, starkes Selbst hin und her für? ** Yo sind richtig, ich dachte Angenommen Lange laufende Aufgabe ist in Clouser bevor es ausgeführt werden Benutzer drücken Sie die Taste zurück, so dass ich schwache selbst, ** Ich schätze, dass die Indexpfade nach dem Löschen einer Zelle nicht korrekt aktualisiert werden ** Irgendwelche Vorschläge? –