Donc, j'essaie de récupérer des objets à partir de données de base. J'ai une liste disons de 80 objets, et je veux pouvoir les rechercher en utilisant une UISearchBar. Ils sont affichés dans un tableau.
En utilisant la documentation d'Apple sur les prédicats, j'ai mis le code suivant dans l'une des méthodes déléguées de UISearchBar.
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
if (self.searchBar.text !=nil)
{
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"name LIKE %@", self.searchBar.text];
[fetchedResultsController.fetchRequest setPredicate:predicate];
}
else
{
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"All"];
[fetchedResultsController.fetchRequest setPredicate:predicate];
}
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error]) {
// Gérer l'erreur
NSLog(@"Erreur non résolue %@, %@", error, [error userInfo]);
abort(); // Échec
}
[self.tableView reloadData];
[searchBar resignFirstResponder];
[_shadeView setAlpha:0.0f];
}
Si je saisis dans le champ de recherche une correspondance exacte avec la propriété de nom de l'un de ces objets, la recherche fonctionne, et cela repeuple le tableau avec une seule cellule portant le nom de l'objet. Si je ne recherche pas le nom exact, je n'obtiens aucun résultat.
Des idées?