2010-10-09 6 views
14

Ho una buona app per iPhone funzionante che funziona con i dati principali. Io uso un NSFetchedResultsController/NSManagedObjectContext come descritto in varie esercitazioni.Come ottenere tutte le voci di un NSFetchedResultsController/NSManagedObjectContext?

Ora voglio estendere la mia app e aggiungere altre funzionalità. Il problema che ho bisogno di costruire un array con oggetti che hanno informazioni dai miei dati.

In qualche modo ho bisogno di ottenere un elenco di tutti i dati che ho nel mio contesto.

Pensavo di poter approcciare un approccio simile al modo in cui ottengo i dati per UITableView.

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

Questo fallisce, perché in realtà ho più sezioni. Ora potrei passare attraverso tutte le sezioni e fare il mio IndexPath accedere ai miei dati con:

MyData *info = [_fetchedResultsController objectAtIndexPath:indexPath]; 

ma penso che ci sia un altro modo io non ho ancora trovato e spero che qualcuno mi può aiutare qui.

Grazie mille.

risposta

40

stai cercando un metodo per ottenere tutti gli oggetti da NSFetchedResultsController? Se è così, usa questo.

NSArray *fetchedData = [_fetchedResultsController fetchedObjects]; 

se si dispone di più di 1 soggetto costruire una fetchrequest per ogni entità. Qualcosa del genere dovrebbe darti tutti i tuoi oggetti.

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

Se si voleva ottenere tutti gli oggetti per una sezione particolare si potrebbe fare questo:

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