Ich habe den folgenden Code:Abwahl von Collection und Abbrechen Artikel von Array
var selectedIndexPaths = [NSDate]()
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let cell = collectionView.cellForItemAtIndexPath(indexPath) as? PartExpense
if cell?.selected == true {
cell?.layer.borderWidth = 4.0
cell?.layer.borderColor = UIColor.greenColor().CGColor
selectedIndexPaths.append(cell!.idPartecipant)
print(selectedIndexPaths)
}
}
func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) {
let cell = collectionView.cellForItemAtIndexPath(indexPath)
if cell?.selected == false {
cell?.layer.borderColor = UIColor.clearColor().CGColor
if let index = selectedIndexPaths.indexOf(indexPath.row) {
selectedIndexPaths.removeAtIndex(index)
print(selectedIndexPaths)
}
}
}
alles gut, bis Linie geht: wenn index = selectedIndexPaths.indexOf (indexPath.row) lassen
Das ist das ist Fehler: "Wert des Typs Int kann nicht in den erwarteten Typ NSDate konvertiert werden" Wie kann ich dies erreichen? Wie kann ich ein Array konvertieren, um diesen Fehler zu vermeiden?
Ich muss in Array dieses spezielle Element IDPartecipant, die ein Nsdate mit CoreData gespeichert ist. Wenn ich die Zeile abnehme, muss das Element entfernt werden. – user1679705
Suchen Sie zuerst nach dem Datum, das deaktiviert wurde, indem Sie die ursprüngliche Datenquelle nach den Daten durchsuchen (das in cellForItemAtIndexPath verwendete Array). Sobald Sie die eine, die abgewählt wurde dann für das Datum, das Sie selectedIndexPaths Array suchen, wenn deselectedData lassen: NSDate = Datasouce [indexPath.row] { wenn lassen index = selectedIndexPaths.indexOf (deselectedData) { selectedIndexPaths.removeAtIndex (index) } } –
mit Ihrem Code, wenn ich abwählen manchmal ich habe diesen Fehler: "fataler Fehler: Index außerhalb des Bereichs" – user1679705