0

我在这个布局中使用 coredata

在此处输入图像描述

现在我想显示一个带有 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;

我不确定应该向您展示 tableviewcontroller 的哪个部分?

在此处输入图像描述

“Bätterich”应该在“Others”中,“Pertusio Acquacalda”应该在“Ticino”中 我已经检查了 Core Data 的 sql 文件,并且引用就在那里。

4

1 回答 1

0

通过使用以下排序描述符解决了问题

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];
于 2011-07-25T14:27:09.800 回答