Специальная выборка основных данных - PullRequest
0 голосов
/ 28 ноября 2010

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

Буду признателен за помощь, Фабиан

Ответы [ 2 ]

0 голосов
/ 11 апреля 2011

- (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 ** -----------

0 голосов
/ 28 ноября 2010

Хорошо, разобрался сам.В основном заполняя массив partNames информацией из моего NSFetchedResultsController:

for (int i = 0; i < [[self.fetchedResultsController sections] count]; i++) {
    id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:i];
    [partNames addObject:[sectionInfo name]];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...