2010-01-17 7 views
1

J'ai un fetchedResultsController qui a retourné tous les enregistrements pour mon entité "Compte". Je voudrais rechercher rapidement tous les enregistrements de compte pour l'attribut "lastName" == value, et me rendre l'objet Account, ou au moins le indexPath de l'objet dans le fetchedResultsController. Il ne devrait y avoir qu'un seul objet retourné.Utilisation de NSPredicate avec des données de base NSFetchedResultsController

À part parcourir tous les objetsAtIndexPath, existe-t-il un meilleur moyen de rechercher le fetchController à l'aide de NSPredicate?

Répondre

8

mootymoots, filtrez simplement les objets récupérés avec un autre attribut ...

NSPredicate *lastNameMatch = ... 
NSArray *matchingFetchedObjects = [fetchedResultsController.fetchedObjects filteredArrayUsingPredicate:lastNameMatch]; 

qui laisse votre fetchedResultsController résultats non modifiés, mais vous donne un tableau avec un match pour le dernier prédicat nom.

3
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
// set up fetch request 
... 
NSPredicate *requestPredicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"(lastName like '%@')", self.lastName]]; 
[fetchRequest setPredicate:requestPredicate]; 
... 
// perform fetch 
NSError *error = nil; 
if (![self.fetchedResultsController performFetch:&error]) { 
    // handle error... 
} 

... 

Account *uniqueAccount = [[self.fetchedResultsController fetchedObjects] anyObject]; // assuming lastName attribute is unique 
+0

merci Alex - alors dites-vous que je devrais ignorer le fetchedResultsController déjà installé qui construit mon NSTableView, et en créer un supplémentaire à cet effet? Je suppose que ce que je dis est, je ne peux pas faire un NSPredicate sur les objets de compte déjà récupérés dans fetchedResultsController? – mootymoots

+1

Oui, vous pouvez appliquer un prédicat à un 'NSSet' ou' NSArray' existant. Non, vous n'avez pas besoin de créer une FRC supplémentaire. Voir: http://theocacao.com/document.page/346 –

Questions connexes