Pregunta

Tengo un fetchedResultsController que ha regresado todos los registros de mi entidad "Cuenta".

Me gustaría buscar rápidamente todos los registros de cuenta para el atributo "Apellido" == valor, y devuélveme el objeto de cuenta, o al menos la indexPath del objeto en el fetchedResultsController. No sólo debe ser 1 objeto devuelto.

Aparte de recorrer todos los objectAtIndexPath, hay una mejor manera de buscar la fetchController usando NSPredicate?

¿Fue útil?

Solución

mootymoots sólo tiene que filtrar los objetos inverosímiles con otro predicado ...

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

Esto deja como resultado funcionando sin cambios su fetchedResultsController, pero le da una matriz con un partido para el apellido predicado.

Otros consejos

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top