¿Cómo search una matriz de dictionary y mostrarla en UITableview?

Soy bastante nuevo en IOS y estoy usando UISearchDisplayController para search.

 -(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { [self filterContentForSearchText:searchString scope:[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]]; return YES; } - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { NSPnetworkingicate *pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithFormat:@"ANY SELF == %@", searchText]; NSArray *filtenetworking = [self.arrProductList filtenetworkingArrayUsingPnetworkingicate:pnetworkingicate]; NSLog(@"%@", filtenetworking); } 

Y aquí está mi self.arrProductList es una matriz de matriz es decir

     ({
         ID = 1;
         description = "Funcionamiento de Coalesce en la camiseta de la impaciencia";
         pname = "Coalesce Functioning T-Shirt";
         precio = "299.00";
         qty = 99;
        },
     {
         ID = 2;
         description = "Eater Krylon Bombear Destroyed T-Shirt";
         pname = "La camiseta de la niña";
         precio = "499.00";
         qty = 99;
     },
     {
         ID = 3;
         description = "El campamento de banda para niños Get-Up Sudadera con capucha";
         pname = "Band Camp T-Shirt";
         precio = "399.00";
         qty = 99;
     })  

Mi pregunta es cómo search utilizando la key "pname" ? Mi aplicación está bloqueada en

filtenetworkingArrayUsingPnetworkingicate:

Necesita modificar su pnetworkingicado para agregar la key a search:

 NSPnetworkingicate *pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithFormat:@"pname == %@", searchText]; 

Además == realidad searchá coincidencias exactas, es decir, si ingresas Band Camp T-Shirt como búsqueda, obtendrás el resultado, no podrás get ningún resultado si simplemente ingresas Band o Camp o Shirt . Por lo tanto, para lograr la búsqueda basada en caracteres, debe modificar el pnetworkingicado para include la palabra key contenida.

 NSPnetworkingicate *pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithFormat:@"pname contains[cd] %@", searchText]; 

[cd] coincidirá con mayúsculas y minúsculas.

Mi amigo resuelve este problema. Aquí está el código:

 - (void) searchBarDidBeginEditing:(UISearchBar*) lclSearchBar { self.searchBar.showsCancelButton = YES; } #pragma mark - UISearchDisplayController delegate methods -(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { [self filterContentForSearchText:searchString scope:[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]]; return YES; } - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { if (searchResults.count != 0) { [searchResults removeAllObjects]; } for (int i=0; i< [self.arrProductList count]; i++) { NSString *string = [[self.arrProductList objectAtIndex:i] valueForKey:@"pname"]; NSRange rangeValue = [string rangeOfString:searchText options:NSCaseInsensitiveSearch]; if (rangeValue.length > 0) { NSLog(@"string contains bla!"); [searchResults addObject:[self.arrProductList objectAtIndex:i]]; } else { NSLog(@"string does not contain bla"); } } NSLog(@"fiilterArray : %@",searchResults); }