2010-11-28 6 views
0

Mon modèle de données de base comporte une entité avec un attribut appelé «partie». Différents objets de cette entité peuvent partager la même valeur pour "part", ce qui signifie qu'ils appartiennent tous à la même "partie". Un NSFetchedResultsController peut maintenant afficher des sections basées sur ces valeurs, en regroupant toutes les parties. Cela fonctionne sans problèmes, mais j'ai maintenant besoin des valeurs de "part" pour quelque chose de différent maintenant. Je voudrais chercher seulement les différentes valeurs pour "part" et les afficher dans un tableau, en s'assurant que les mêmes valeurs ne sont pas affichées deux fois. Comment puis-je faire ceci?Extraction des données de base spéciales

Je vous serais reconnaissant de l'aide, Fabian

Répondre

0

D'accord, tout compris moi-même. remplissage essentiellement un tableau partNames avec les informations de mon NSFetchedResultsController:

for (int i = 0; i < [[self.fetchedResultsController sections] count]; i++) { 
    id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:i]; 
    [partNames addObject:[sectionInfo name]]; 
} 
0

- (NSFetchedResultsController *)fetchedResultsController { 

if (fetchedResultsController_ != nil) { 
    return fetchedResultsController_; 

} 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext]; 
[fetchRequest setEntity:entity]; 
[fetchRequest setFetchBatchSize:20]; 



NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
[fetchRequest setSortDescriptors:sortDescriptors]; 

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"name" cacheName:nil]; 
aFetchedResultsController.delegate = self; 
self.fetchedResultsController = aFetchedResultsController; 

[aFetchedResultsController release]; 
[fetchRequest release]; 
[sortDescriptor release]; 
[sortDescriptors release]; 

NSError *error = nil; 
if (![fetchedResultsController_ performFetch:&error]) { 
    NSLog(@"Unerwarteter Fehler %@, %@", error, [error userInfo]); 
    abort(); 
} 

return fetchedResultsController_; 

}

Cela vous donnera toutes les personnes Trier par nom et groupe bu nom , supprime les valeurs en double.

----- Lors de la création Fetcgcontroller, doivent mentionner le sectionNameKeyPath * * -----------

Questions connexes