2010-04-12 5 views
0

Beaucoup d'informations sur NSDates sur le lieu, mais je n'ai pas trouvé de solution claire à cela.core-data NSDate recherche de jours uniques et le tri

J'ai une liste de Event entités, chacune avec potentiellement beaucoup EventSessionTime s.

Event < --- >>EventSessionTime

Dans 1 vue de la table, je veux afficher une liste unique de jours qui ont Events, dans une autre vue de la table, je veux montrer les événements sur un jour donné (par ordre temps).

Pour ce faire, j'ai actuellement 2 NSDates - un jour et une heure - et une recherche/tri trop complexe. Je veux supprimer cette information redondante.

Avec cela à l'esprit, comment puis-je:

1) Trouver tous les jours uniques avec des événements, sans se soucier temps spécifique

2) Trouver tous les événements d'un jour particulier (doublons bien ici)

Des conseils sur la meilleure façon d'y parvenir seraient excellents.

Merci.

Répondre

2

J'ai maintenant la relation suivante. Vous avez encore des informations à jour redondantes ..

Event < --- >>EventSessionTime < < ->EventDay

1) Trouver tous les jours avec un événement UNIQUE, aucun souci temps spécifique

I peut créer des dates spécifiques où je connais l'heure. La nature localisée de ma demande signifie que je peux le faire en toute sécurité.

... 
[NSEntityDescription entityForName:@"EventSessionTime" inManagedObjectContext:self.managedObjectContext]; 
... 
NSArray *res = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 
[self myResultArray:[res valueForKeyPath:@"@distinctUnionOfObjects.eventDay.day"]]; 

Vous pouvez déduire mes noms d'attributs et de relations.

2) Trouver tous les événements d'un jour particulier (doublons) bien ici

J'utilise le prédicat suivant pour trouver tous les événements de la journée spécifiée avec. Il ne renvoie pas de doublons

[NSPredicate predicateWithFormat: @"(SUBQUERY(eventTime, $x, $x.eventDay.day == %@)[email protected] > 0)", <the day selected from the previous list>];