2013-05-11 20 views
1

可以说我有不同日期的NSMutableArray。日期以UITableView表示。如果我点击UITableViewCell,如何从NSMutableArray获取同一天的所有日期?从阵列中获取当天的所有日期

所以我们可以说我在星期一插入了3个日期,在星期二插入了1个,在星期三插入了4个等等......如果我按1/3表示星期一的日期,我怎样才能得到所有3个星期一的日期,忽略其他日子?

如果可能的话,我该如何排序呢?因此,如果我在8,9,10小时(全部在星期一)保存并且按下任何小时(也包括分钟),他们将按照他们真实发生的情况排序8-9-10 ...

TNX。

回答

1

使用NSDate和公司进行日期计算有点复杂,但一旦掌握了它,它就会变得非常强大。以下是过滤阵列的一种方法:

int main (int argc, const char * argv[]) 
{ 
    @autoreleasepool { 

     NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
     NSMutableArray *dates = [NSMutableArray array]; 
     NSDate *selectedDate = [NSDate date]; 

     for (int i=0; i<70; i++) 
      [dates addObject:[NSDate dateWithTimeIntervalSinceNow:i * 60*60*24]]; 



     NSInteger selectedDayOfWeek = [calendar components:NSWeekdayCalendarUnit fromDate:selectedDate].weekday; 

     NSPredicate *filter = [NSPredicate predicateWithBlock:^(id object, NSDictionary *bindings) { 
      return (BOOL)([calendar components:NSWeekdayCalendarUnit fromDate:object].weekday == selectedDayOfWeek); 
     }]; 

     NSArray *filteredDates = [dates filteredArrayUsingPredicate:filter]; 

     NSArray *sortedDates = [filteredArray sortedArrayUsingSelector:@selector(compare:)]; 

     NSLog(@"%@", filteredDates); 
    } 
    return 0; 
} 
相关问题