Domanda

Uno veloce. Sto trascurando qualcosa ...

Ho una vista tabella raggruppata creata da array in un NSDictionary. Ogni array è una sezione della tabella. In modalità di modifica e un utente fa clic su " elimina " Chiamo

- (void)removeObject:(MyClass *)myObject 

come posso determinare quale array inviare il messaggio [myArray removeObject: myObject]? NSDictionary non ha un metodo indexOfObject: ma NSArray ha. Suppongo che potrei scorrere ogni array alla ricerca di detto oggetto, ma ciò non sembra giusto.

Qualcuno può scuotere il cervello per favore?!? thx!

È stato utile?

Soluzione

È possibile implementare i protocolli UITableView standard e utilizzare questo metodo:

(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>}

Penso che sia il modo di farlo, non sono sicuro però. Qualcuno può chiarire?

Altri suggerimenti

Dovresti sapere quale tableView ha inviato il messaggio (perché il metodo in questione è nel delegato per quell'oggetto) - e quindi puoi creare l'array nel metodo viewDidLoad nel delegato tableView, o in alternativa capire quale si basa sul contesto delegato.

Ovviamente non vedo nulla di male nell'iterare attraverso gli array. Con quale frequenza le persone eliminano le cose e i dizionari sono davvero abbastanza grandi da renderlo un sovraccarico significativo?

Come punto di riferimento, il metodo indexOfObject: di NSArray non fa nulla di più elaborato dell'iterazione sebbene l'array cerchi un oggetto corrispondente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top