我在这个布局中使用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”应该在“其他”中,而“Pertusio Acquacalda”应该在“Ticino”中 我检查了Core Data的sql文件,引用就在那里。
答案 0 :(得分:0)
使用以下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];