Pergunta

Rápido. Estou negligenciando algo ...

Eu tenho uma visão de tabela agrupada que é construída a partir de matrizes em um nsdictionary. Cada matriz é uma seção da tabela. Quando no modo de edição e um usuário clica em "excluir", eu chamo

- (void)removeObject:(MyClass *)myObject 

Como posso determinar qual matriz enviar a mensagem [MyArray RemowObject: MyObject]? O nsdictionary não possui um indexOfObject: Method, mas o nsarray possui. Suponho que eu poderia itera em cada matriz procurando o referido objeto, mas isso não parece certo.

Alguém pode sacudir meu cérebro, por favor?!? THX!

Foi útil?

Solução

Você pode implementar os protocolos padrão do uabableView e usar este método:

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

Eu acho que é assim que não tem certeza. Alguém pode esclarecer?

Outras dicas

Você deve saber em qual tabelaview enviou a mensagem (porque o método em questão está no delegado para esse objeto) - e, portanto, você pode criar a matriz no método ViewDidload no delegado da TableView ou, alternativamente, descobrir qual é baseado em o contexto delegado.

Não vejo nada obviamente errado em iterar através das matrizes. Com que frequência as pessoas excluem as coisas e os dicionários são realmente grandes o suficiente para tornar isso uma sobrecarga significativa?

Como ponto de referência, NSArray's indexOfObject: O método não faz nada mais extravagante do que iterar, embora a matriz esteja procurando um objeto correspondente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top