How to use UISearchBar with data coming from Core Data?

0

I'm trying to filter the cell names of a table, loaded with data from Core Data, however I'm having a crash.

I'm using the following code to filter the cell title:

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{

    if (searchText.length == 0) {

        // Ajustando valor da flah booleana
        isFiltrado = NO;
    }else{

        // Ajustando valor da flah booleana
        isFiltrado = YES;

        // Alloc e inicia nosso dadosFiltrados
        dadosFiltrados = [[NSMutableArray alloc ]init];

        //Fast enumeration
        for (NSDictionary* nomeAtividade in arrayAtividadeLocal) {

            NSRange rangeNomeAtividade = [[nomeAtividade objectForKey:@"atividade" ]rangeOfString:searchText];

            if (rangeNomeAtividade.location != NSNotFound) {
                [dadosFiltrados addObject: nomeAtividade];
            }
        }
    }

I'm getting the following Xcode error:

  

Terminating app due to uncaught exception   'NSInvalidArgumentException', reason: '- [NSManagedObject   objectForKey:]: unrecognized selector sent to instance ...

    
asked by anonymous 06.11.2014 / 03:49

1 answer

1

It seems that according to the error, in arrayAtividadeLocal you have a vector of Core Data objects, is that right?

Therefore, you need to iterate by considering this object and not an NSDictionary , for example:

for (AtividadeLocal *objAtividade in arrayAtividadeLocal) {
    NSString *nomeAtividade = [objAtividade atividade]; // Objeto e propriedade
    NSRange rangeNomeAtividade = [nomeAtividade rangeOfString:searchText];

    if (rangeNomeAtividade.location != NSNotFound) {
        [dadosFiltrados addObject:objAtividade];
    }
}
    
06.11.2014 / 12:17