我想按日期排序可以正常工作。
如果您希望您的函数收集具有特定日期的所有对象,它可能看起来像这样(假设您的对象员工是 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 的数据源,并在将数组分配为数据源后重新加载表格视图。
当然,这没有经过测试,因为我没有测试数据。但它应该像这样工作。
如果这对您有用,请也为这篇文章投票,因为它向我展示了如何在没有时间的情况下使用日期。:)