Question

J'utilise CoreData avec cette mise en page

entrer image description ici

Maintenant, je voudrais montrer une table avec la Cave.title sous forme de lignes commandées dans la Region.region en section. Avec le code suivant, il montre les sections et les lignes correctement. Le seul problème est que l'ordre ne va pas. Les lignes ci-dessous les sections ne appartiennent à cette section.

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;

Je ne sais pas quelle partie du tableviewcontroller je vous montrer?

entrer image description ici

« Bätterich » devrait être dans « Autres » et « Pertusio Acquacalda » devrait être dans « Tessin » J'ai vérifié le fichier sql de données de base et les références sont juste là.

Était-ce utile?

La solution

Résolu le problème en utilisant les sortdescriptors suivants

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];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top