Frage

Ich brauche Zeile löscht 1 eine Tabelle in einer Funktion, die ich definiert haben. Um den Einsatz deleteRowAtIndexPath müssen Sie einen IndexPath mit einem Abschnitt und Zeile definiert verwenden. Wie kann ich ein indexPath wie dies schaffen?

ein Array mit dem int {1} als einziges Mitglied stürzt; die NSLog Meldung besagt, dass der Abschnitt als auch definiert werden muss.

* Bearbeiten -> Kodex löschen Zelle:

    NSIndexPath *myIP = [[NSIndexPath alloc] indexPathForRow:0 inSection:0];
    NSArray *myArray = [[NSArray alloc] initWithObjects:myIP, nil];
//  [self.tableView beginUpdates];
    [self.tableView deleteRowsAtIndexPaths:myArray withRowAnimation:UITableViewRowAnimationFade];
//  [self.tableView endUpdates];
War es hilfreich?

Lösung

Verwenden [NSIndexPath indexPathForRow:inSection:], um schnell einen Index Pfad erstellen.

Edit: In Swift 3:

let indexPath = IndexPath(row: rowIndex, section: sectionIndex)

Andere Tipps

indexPathForRow ist eine Klassenmethode!

Der Code sollte lauten:

NSIndexPath *myIP = [NSIndexPath indexPathForRow:0 inSection:0] ;

obligatorische Antwort in Swift: NSIndexPath(forRow:row, inSection: section)

Sie werden feststellen, dass NSIndexPath.indexPathForRow(row, inSection: section) in swift nicht verfügbar ist, und Sie müssen die erste Methode verwenden, um das indexPath zu konstruieren.

Für Swift 3 ist es jetzt: IndexPath(row: rowIndex, section: sectionIndex)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top