J'essaie de créer un index représentant la première lettre de chaque enregistrement dans un magasin de données de base à utiliser dans un contrôleur de vue de table. J'utilise un extrait du code de la documentation d'Apple. Je voudrais simplement produire un tableau ou un dictionnaire de valeurs distinctes comme le résultat. Mon magasin a déjà le caractère défini dans chaque objet d'enregistrement. Questions:Tableau de valeurs distinctes pour l'index de View Controller utilisant des données de base
1) J'ai un problème de compréhension de NSDictionaryResultType. Où l'objet dictionnaire résultant est-il reçu afin que je puisse assigner ses clés au contrôleur de vue? Le code semble retourner seulement un tableau.
2) Si j'inclue la ligne contenant NSDictionaryResultType, je n'ai aucun retour.
3) Je réalise que je pourrais le faire en boucle, mais j'espère que cela fonctionnera.
Merci!
NSEntityDescription *entity = [NSEntityDescription entityForName:@"People" inManagedObjectContext:managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
[request setResultType:NSDictionaryResultType]; // This line causes no no results.
[request setReturnsDistinctResults:YES];
[request setPropertiesToFetch :[NSArray arrayWithObject:@"alphabetIndex"]];
NSError *error;
NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error];
Si j'ajoute la ligne contenant "setResultType: NSDictionaryResultType" les objets array * résultants, après l'extraction, sont nuls. Si je commente la ligne, j'obtiens 63 objets qui représentent tous les objets de l'entité "People". Il existe un attribut appelé "alphabetIndex" qui contient les valeurs a-z représentant la première lettre du nom de la personne. –
Pour faire court, je voudrais un dictionnaire ou un tableau représentant les valeurs uniques. Si les seuls noms de personnes présents étaient Anston, Franks, Johnson et Smith, je créerais un tableau avec les valeurs "A, F, J, S". –
Cela a du sens. Créer ce tableau est très facile comme je l'ai montré dans une mise à jour ci-dessus. – gerry3