J'utilise Core Data pour une vue de table. Mes données sont classées par distance de votre position actuelle. Ce que j'aimerais, c'est avoir une nouvelle section pour les articles de 5, 10 et 20 miles.Section de distance NSFetchedResultsController sections
Ma valeur de distance est stockée dans le magasin de données en tant que NSInteger et je l'obtiens en utilisant un NSNumber dans mon modèle d'objet.
J'ai fait un peu de recherche autour et j'ai trouvé que j'ai besoin d'utiliser l'attribut sectionNameKeyPath
pour rendre les données sectionnées.
Mon problème est que je ne connais pas la meilleure façon de regrouper les données. Au cours de mes recherches, je suis tombé sur une propriété transitoire ou en utilisant une catégorie de NSNumber pour déterminer la section dans laquelle l'élément devrait être.
L'une ou l'autre de ces méthodes est-elle le meilleur moyen d'obtenir mon résultat final? fournir des détails sur la façon de le mettre en œuvre?
Merci.
Merci pour votre réponse. Désolé si je suis un peu bête ici, mais quand vous dites un "attribut dérivé" voulez-vous dire dans mon objet de modèle de données. H fichier, je fais quelque chose comme: @property (monatomic, readonly) NSInteger * gamme; De plus, aurais-je besoin de créer ma propre méthode getter pour retourner 5, 10 ou 20? –
Cette méthode fonctionnera mais c'est une solution rapide et sale qui embrouille l'interface utilisateur et le modèle ensemble. En règle générale, vous ne souhaitez pas contaminer votre couche de modèle avec les détails d'implémentation de la couche de vue. Que se passe-t-il si vous avez plusieurs vues de table avec des sections définies par des plages d'attributs différents? Allez-vous avoir plusieurs attributs dérivés, un pour chaque vue de table. Que se passe-t-il lorsque vous souhaitez utiliser le modèle de données dans une autre application? Il est préférable de garder le modèle et la vue aussi séparés que possible. – TechZen
scrooby, oui. @TechZen, d'accord. Mais avez-vous une meilleure façon de gérer cela tout en utilisant le FetchedResultsController? J'aimerais savoir à ce sujet (pour exactement les raisons que vous dites). - - - L'option "clean design" consiste à implémenter toutes les méthodes déléguées, à jeter FetchedResultsController et à utiliser seulement FetchedResults - c'est beaucoup plus de travail pour obtenir le "design propre", scrooby que vous êtes en mesure de décider ce qui est désiré. Comme TechZen l'a dit, s'il y a beaucoup de possibilités, vous ne voudrez peut-être pas que cela pousse dans le modèle. – bshirley