Я полагаю, что сортировка по дате работает правильно.
Если вы хотите, чтобы ваша функция собирала все объекты с определенной датой, это могло бы выглядеть так (предполагая, что ваш объект-работник является NSDictionary или NSMutableDictionary);
-(NSArray*)getObjectsWithDate: (NSDate*) date fromArray:(NSArray*) array
{
NSMutableArray *retArray = [[NSMutableArray alloc]init];
BOOL b_enteredCorrectDateArea = NO;
for (NSDictionary *dict in array) {
NSDate *dateFromDict = [dict objectForKey:@"date"];
//Updated section
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:flags fromDate:dateFromDict];
NSDate* dateFromDictWithoutTimeComponent = [calendar dateFromComponents:components];
components = [calendar components:flags fromDate:date];
NSDate *dateFromArgumentsWithoutTimeComponent = [calendar dateFromComponents:components];
//end of update
if ([dateFromArgumentsWithoutTimeComponent isEqualToDate:dateFromDictWithoutTimeComponent]) {
[retArray addObject:dict];
if (!b_enteredCorrectDateArea) {
b_enteredCorrectDateArea = YES;
}
}
else if(b_enteredCorrectDateArea) //performance Optimization
{
break;
}
}
return retArray;
}
Если вы затем хотите отображать отфильтрованные данные, просто использовать возвращаемый массив как источник данных для UITableView и перезагрузить TableView после присвоения массива в качестве источника данных.
Конечно, это не проверено, так как у меня нет тестовых данных. Но это должно сработать так.
Если это сработает для вас, пожалуйста, также включите этот номер post, так как он показал мне, как просто использовать дату без времени. :)
его хорошо, но, пожалуйста, поймите, как будто у меня 5 или более (динамических) записей, я извлек все записи из базы данных и я waan для отображения одинаковых записей даты с разным временем в одном разделе и других датах с разными время в другом разделе то же самое, спасибо, пожалуйста, помогите мне – terminator
ах. поэтому вы хотите сравнить только дату, а не время. Ок, извините, неправильно понял это. Тогда я уточню свой ответ. – Maverick1st
спасибо Maverick за помощью, пожалуйста, обновите его – terminator