Сортировать массив дат с датой месяц и год в цели c - PullRequest
1 голос
/ 07 марта 2019

Я хочу отсортировать массив с датой, но дата сортируется только по дате и месяцу, а не по году. Мой код:

NSArray *sortedArray = [arrClassSehedule sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *obj1, NSDictionary *obj2) {
    NSDate *d1 = [appSharedData.CommanFormatForConditional dateFromString: [obj1 objectForKey:@"scheduleStart"]];
    NSDate *d2 = [appSharedData.CommanFormatForConditional dateFromString: [obj1 objectForKey:@"scheduleStart"]];
    return [d1 compare: d2];
}];

Не выполняется сортировка по дате.

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Похоже на опечатку.

Пожалуйста, замените код на

 NSDate *d2 = [appSharedData.CommanFormatForConditional dateFromString: [obj2 objectForKey:@"scheduleStart"]];
0 голосов
/ 07 марта 2019

Проблема в том, что для d1 вы используете obj1, а для d2 вы также используете obj1. Так что просто опечатка, как написал Лал Кришна. Вот исправленная версия:

NSArray *sortedArray = [arrClassSehedule sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *obj1, NSDictionary *obj2) {
    NSDate *d1 = [appSharedData.CommanFormatForConditional dateFromString:[obj1 objectForKey:@"scheduleStart"]];
    NSDate *d2 = [appSharedData.CommanFormatForConditional dateFromString:[obj2 objectForKey:@"scheduleStart"]];
    return [d1 compare:d2];
}];
...