Je veux trier un tableau de NSDates uniquement le jour mois et l'année, donc pas sur l'une des unités de temps. Comment puis-je faire cela parce que je ne peux pas voir un moyen de «sortir» les différentes parties d'un NsDate.Trier NSDate dans l'ordre tout en ignorant l'heure
1
A
Répondre
4
Voir ce post pour trier un tableau contenant les objets NSDate:
Sort NSArray of date strings or objects
et la mine pour éliminer le temps:
Truncate NSDate (Zero-out time)
ADDITION
1) Boucle grâce à votre tableau d'objets NSDate, rem Oving (mise à zéro) les composants de temps, et en les ajoutant à un nouveau tableau:
NSMutableArray *newDateArray = [NSMutableArray array];
for (NSDate *d in myDateArray)
{
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:flags fromDate:d];
//Taking the time zone into account
NSDate *dateOnly = [[calendar dateFromComponents:components] dateByAddingTimeInterval:[[NSTimeZone localTimeZone]secondsFromGMT]];
[newDateArray addObject:dateOnly];
}
2) Maintenant que vous avez un nouveau tableau constitué d'objets NSDate avec des composants de temps remis à zéro, vous pouvez les trier:
[newDateArray sortUsingSelector:@selector(compare:)];
Cette ligne trie la matrice à l'aide de la méthode de comparaison de l'objet NSDate.
Pourriez-vous passer quelques minutes combinant les messages, merci :) –
@Jonathan: J'ai ajouté un échantillon de code. –