2010-11-28 2 views
0

В моей базовой модели данных есть одна сущность с атрибутом «part». Различные объекты этого объекта могут использовать одно и то же значение для «части», то есть все они принадлежат к одной и той же «части». Теперь NSFetchedResultsController может отображать разделы на основе этих значений, взяв все вместе вместе. Это работает без проблем, однако теперь мне нужны значения для «части» для чего-то другого. Я хотел бы получить только разные значения для «part» и отобразить их в tableView, убедившись, что одни и те же значения не отображаются дважды. Как я могу это сделать?Специальная выборка данных ядра

Я был бы признателен за помощь, Fabian

ответ

0

Хорошо, понял это сам. В основном заполнение массива partNames с информациями из моих 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_; 

}

Это даст вам все лицо с сортировать по имени и группами б имени , удаляет повторяющиеся значения.

----- При создании Fetcgcontroller, должен упомянуть sectionNameKeyPath * * -----------

Смежные вопросы