2010-04-01 9 views
3

Je stocke les dates dans un attribut entité de données de base , puis j'affiche la date dans les cellules du tableau. Je veux regrouper toutes les cellules selon les mois et seulement afficher les dates pertinentes dans les sections correctes.iPhone: Groupe par mois - Données de base

J'utilise sectionNameKeyPath du NSFetchedResultsController, mais je dois d'utiliser uniquement le mois de la date à groupe. Comment puis-je atteindre cet objectif? Est-ce que je devrais créer un nouvel attribut et stocker juste le mois comme chaîne ou puis-je utiliser NSPredicate?

S'il vous plaît quelqu'un peut-il me faire savoir si ils l'ont fait ou me donner quelques exemples .

Merci

Répondre

5

Première étape, assurez-vous que vous avez une classe d'objets gérés dans votre projet qui représente l'entité de données de base qui stocke la date. Étape 2, dans le fichier d'implémentation de cette entité, écrivez une méthode qui renvoie le mois pour cet objet. Il doit regarder la variable date et utiliser les méthodes NSDateComponents pour déterminer le mois. Vous n'avez pas besoin de créer un nouvel attribut pour cela. Étape 3, lorsque vous initialisez votre NSFetchedResultsController, transmettez le nom de la méthode qui renvoie le mois en tant que paramètre sectionNameKeyPath. Ce que vous faites essentiellement est de créer une méthode "getMonth" qui détermine par programme le mois, et donne la valeur renvoyée par celle-ci à la sectionNameKeyPath. J'espère que ceci est clair. S'il vous plaît demander des éclaircissements si non.

Remarque. Assurez-vous que la méthode month renvoie le mois de manière à ce qu'il soit trié dans le bon ordre (c.-à-d. Non alphabétiquement) et que votre vue Table traduise cela en une chaîne significative.

+0

Vous pouvez utiliser Trier pour éviter de gérer l'ordre des mois. NSSortDescriptor * sort = [NSSortDescriptor sortDescriptorWithKey: @ "date" ascendant: NO]; – MatterGoal

Questions connexes