Hallo,de base de données - prédicats avec NSDates
Je travaille sur une application de base de données et à faire un peu de filtrage en fonction des dates. J'ai effectué quelques tests et il semble que lors de la comparaison des NSDates, Core Data compare le composant time des dates ainsi.
Mon code:
- (BOOL)hasSpeakersWithinDateRangeFrom:(NSDate *)startOfRange through:(NSDate *)endOfRange {
NSPredicate* dateRangePredicate = [NSPredicate predicateWithFormat:@"startOn <= %@ && endOn >= %@", startOfRange, endOfRange];
NSSet* speakersWithinDateRange = [self.speakers filteredSetUsingPredicate:dateRangePredicate];
if ([speakersWithinDateRange count] > 0)
return YES;
else
return NO;
}
et j'ai une méthode de "commodité" qui est un line'er:
- (BOOL)hasSpeakersNow {
return [self hasSpeakersWithinDateRangeFrom:[NSDate date] through:[NSDate date]];
}
Quand je lance quelques tests de base, il ne fonctionne pas comme prévu, et à partir de ce que je peux dire, Core Data compare les composants temporels des objets NSDate avec les dates. Alors, comment puis-je réécrire ce qui précède pour ignorer l'heure et être seulement sensible à la journée passée?
Merci
hm, jason était plus rapide – vikingosegundo
AFAIK, il n'y a pas cette méthode 'dateAtMidnight' sur NSDate. –
@chrispix: Oui, c'est vrai. voir mon edit. – vikingosegundo