Frage

Schneller. Ich übersehen etwas ...

Ich habe eine gruppierte Tischansicht, die aus Arrays in einem Nsdictionary gebaut wurde. Jedes Array ist ein Abschnitt der Tabelle. Wenn ich im Bearbeitungsmodus und im Benutzer auf "löschen" klickt, rufe ich auf

- (void)removeObject:(MyClass *)myObject 

Wie kann ich bestimmen, welches Array die Nachricht [myarray removeObject: myObject] senden kann? NSDictionary hat kein IndexofObject: Methode, aber NSArray. Ich nehme an, ich könnte durch jedes Array nach diesem Objekt itererieren, aber das scheint nicht richtig zu sein.

Kann jemand bitte mein Gehirn rasseln?!? Danke!

War es hilfreich?

Lösung

Sie können die Standard -UitableView -Protokolle implementieren und diese Methode verwenden:

(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle<br> forRowAtIndexPath:(NSIndexPath *)indexPath {
     <br><br>//check the section according to your array, if(indexPath.section ==....
     <br><br>
    if(editingStyle == UITableViewCellEditingStyleDelete) {
     <br>
    [arrayFoundBefore removeObjectAtIndex:indexPath.row];
    <br> 
    }
    <br>}

Ich denke, das ist der Weg, es zu tun, nicht sicher. Kann jemand klarstellen?

Andere Tipps

Sie sollten wissen, welche Tabellenansicht die Nachricht gesendet haben (da sich die betreffende Methode im Delegierten für dieses Objekt befindet) - und daher können Sie das Array entweder in der ViewDidload -Methode in der TableView -Delegate erstellen oder alternativ herausfinden der Delegierte Kontext.

Ich sehe nichts, was offensichtlich falsch ist, wenn ich durch die Arrays iteriert wird. Wie oft löschen die Menschen Dinge und sind die Wörterbücher wirklich groß genug, um dies zu einem bedeutenden Overhead zu machen?

Als Referenzpunkt ist Nsarray's indexOfObject: Die Methode macht nichts schicker als das Array, das nach einem passenden Objekt sucht.

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