разделы и строки не совпадают в uitableview - PullRequest
0 голосов
/ 24 июля 2011

Я использую coredata с этим макетом

enter image description here

Теперь я хотел бы показать таблицу с Cave.title в виде строк, упорядоченных в Region.region как раздел. С помощью следующего кода он показывает разделы и строки правильно. Единственная проблема в том, что порядок не правильный. Строки под разделами не принадлежат этому разделу.

NSManagedObjectContext *context = country.managedObjectContext;

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    request.entity = [NSEntityDescription entityForName:@"Cave" inManagedObjectContext:context];
    request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES]];
    request.predicate = [NSPredicate predicateWithFormat:@"country = %@", country];
    request.fetchBatchSize = 20;

    NSFetchedResultsController *frc = [[NSFetchedResultsController alloc]
                                       initWithFetchRequest:request
                                       managedObjectContext:context
                                       sectionNameKeyPath:@"region.region"
                                       cacheName:nil];

    [request release];

    self.fetchedResultsController = frc;

Я не уверен, какую часть контроллера таблицы просмотра я должен показать вам?

enter image description here

"Bätterich" должен быть в "Others", а "Pertusio Acquacalda" должен быть в "Ticino" Я проверил файл sql Core Data, и ссылки прямо там.

1 Ответ

0 голосов
/ 25 июля 2011

Решил проблему с помощью следующих sortdescriptors

NSSortDescriptor *sortDescriptorRegion = [[NSSortDescriptor alloc] initWithKey:@"region.region" ascending:YES];
NSSortDescriptor *sortDescriptorCave = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptorRegion, sortDescriptorCave, nil];
...