Si vous utilisez un NSFetchedResultsController pour aller chercher vos résultats et connectez-les à votre interface utilisateur c'est assez facile. Il suffit de définir le paramètre sectionNameKeyPath:
de l'appel initWithFetchRequest
sur NSFetchedResultsController
.
Dans cet exemple, qui n'est que légèrement modifié à partir de la référence de classe pour NSFetchedResultsController, j'ai défini un chemin de clé qui utilisera la section nommée "groupe" comme titre de section. Ainsi, si vous avez des lignes dans votre base de données avec un groupe défini sur "Chats" et d'autres lignes avec un groupe défini sur "Chiens", votre vue de table aura 2 sections - une pour les chats et une pour les chiens.
NSManagedObjectContext *context = <#Managed object context#>;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Configure the request's entity, and optionally its predicate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"<#Sort key#>" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];
NSFetchedResultsController *controller = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:context
sectionNameKeyPath:@"groups"
cacheName:@"<#Cache name#>"];
[fetchRequest release];
NSError *error;
BOOL success = [controller performFetch:&error];
Pour plus d'informations sur les chemins de clé, vous devez rechercher la documentation de chemin de clé dans l'ensemble de documents Xcode. Pour les cas simples cependant, c'est juste le nom d'un attribut de vos objets retournés.
merci pour votre poste, que ce que je cherchais. – hanumanDev