11
votes

Données de base: Tri par comptage dans une relation à une autre relation

J'essaie actuellement de configurer un NsfetchedResultController qui commandera ma vue de table en fonction du nombre d'entités dans une relation à une autre relation. Je ne sais pas si cela fait une différence lors de la comptage, mais c'est aussi une relation inverse.

Je pensais que quelque chose comme ça fonctionnerait bien: P>

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Parent"
inManagedObjectContext:managedObjectContext];

NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] 
initWithKey:@"children.@count" ascending:YES];

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1,
nil];

[fetchRequest setSortDescriptors:sortDescriptors];


3 commentaires

Vous voudrez peut-être utiliser ArraywithObject: au lieu de alloc et initwithObjects: . Entre autres raisons, ne pas libérer que la matrice ne provoquera pas de fuite.


C'était juste un pseudo code pour ce que j'essaie d'accomplir, je libère le tableau dans mon code actuel.


Question similaire: Stackoverflow.com/questions/1520522/... < / a>


4 Réponses :


0
votes

J'ai fini par ajouter une propriété de compte dans mon entité, je viens de l'augmenter chaque fois qu'une nouvelle relation a été ajoutée. Fabriqué le fetchedRésulteuse plus facile à utiliser.

Soyez intéressé si vous avez trouvé un moyen d'utiliser kvc. Je n'ai jamais eu besoin de réparer ce hack.

Quelque chose comme ça peut être utile: xxx


1 commentaires

Il me semble que cela doit être une solution meilleure et plus élégante. Est-ce que quelqu'un le sait? Merci.



3
votes

Autant que je sache, vous ne pouvez pas appliquer le @Count dans la requête, mais vous pouvez facilement l'appliquer à la matrice récupérée. xxx


0 commentaires

1
votes

J'ai ajouté l'accessor kvo -countof en tant qu'attribut sur mon modèle d'objet géré comme type d'entier. Je n'ai rien impliqué pour cet attribut dans mon nsmanagedObject sous-classe, car toute la magie semble se produire sous la hotte.

Donc, dans ce cas particulier, ajoutez un attribut Nomofchildren à l'entité parent . Cela devrait supprimer l'exception.

Edit: Ce correctif semble fonctionner uniquement sur iOS 6.1, pas sur iOS 6.0.


1 commentaires

Hé, pourriez-vous éventuellement donner plus de détails à ce sujet? L'auteur aurait dû ajouter l'attribut CountOfchildren dans le modèle, non? Quel type serait-il d'attribut ce serait-il? Y a-t-il plus à cette configuration?