2010-10-09 20 views
14

Tengo una aplicación para iPhone que funciona bien y funciona con datos básicos. Uso NSFetchedResultsController/NSManagedObjectContext como se describe en varios tutoriales.¿Cómo obtener todas las entradas de NSFetchedResultsController/NSManagedObjectContext?

Ahora quiero extender mi aplicación y agregar algunas características más. El problema que necesito para construir una matriz con objetos que tienen información de mis datos.

De alguna manera necesito obtener una lista de todos los datos que tengo en mi contexto.

Pensé que podría hacer un enfoque similar a la forma en que obtengo los datos para UITableView.

id <NSFetchedResultsSectionInfo> sectionInfo = [[_fetchedResultsController sections] objectAtIndex:section]; 

Esto falla, porque en realidad tengo varias secciones. Ahora podría ir a través de todas las secciones y hacer mi propia IndexPath acceder a mis datos con:

MyData *info = [_fetchedResultsController objectAtIndexPath:indexPath]; 

Pero creo que hay otra manera simplemente no han encontrado todavía y espero que alguien me puede ayudar aquí.

Muchas gracias.

Respuesta

40

¿Está buscando un método para obtener todos los objetos NSFetchedResultsController? Si es así, usa esto.

NSArray *fetchedData = [_fetchedResultsController fetchedObjects]; 

si tiene más de 1 entidad construir un fetchrequest para cada entidad. Algo como esto debería darte todos tus objetos.

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:self.entityName inManagedObjectContext:self.managedObjectContext]; 
[request setEntity:entity]; 
NSError *error; 
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:&error]; 
1

Si quieres conseguir todos los objetos de una sección en particular que podría hacer esto:

NSArray *sectionObjects = [_fetchedResultsController.sections[section_number] objects]; 
Cuestiones relacionadas