【问题标题】:Date array sorting issue, iPhone sdk日期数组排序问题,iPhone sdk
【发布时间】:2011-09-26 09:50:07
【问题描述】:

我有一个包含不同日期值的数组。我已经使用以下代码对日期数组进行排序,它完成了。

    combinedArr = [[NSMutableArray alloc]init];
NSInteger counts = [pbTitle count];
for (int i = 0; i < counts; i++) {

    CustomObject *customobject2 = [CustomObject customObjectWithName:
                                   [pbTitle objectAtIndex:i] andDate:[pbstartDate objectAtIndex:i]];
    [combinedArr addObject:customobject2];
}
[combinedArr sortUsingComparator:^NSComparisonResult(id obj1, id obj2)
 {
     return [[(CustomObject*)obj1 date]compare: [(CustomObject*)obj2 date]];
 }];
NSLog(@"Results: %@", combinedArr);

现在结果在combinedArr中,我需要检查每个值与当前系统时间并需要加载到两个不同的数组中,并将这两个数组加载到tableView的两个部分中。我该如何实施?请帮助我找到解决方案。

【问题讨论】:

    标签: iphone uitableview nsmutablearray nsdate date-sorting


    【解决方案1】:

    我认为最简单和最快(运行时间更短)的解决方案是从一开始就创建 2 个单独的数组,并分别对每个数组进行排序。

    像这样:

    NSDate *currentDate = [NSDate date];
    NSMutableArray *pastArray = [[NSMutableArray alloc] init];
    NSMutableArray *futureArray = [[NSMutableArray alloc] init];
    NSInteger counts = [pbTitle count];
    
    // Fill the arrays
    for (int i = 0; i < counts; i++) {
        NSDate *customOnjectDate = [pbstartDate objectAtIndex:i];
        CustomObject *customobject2 = [CustomObject customObjectWithName:[pbTitle objectAtIndex:i] andDate:customOnjectDate];
    
        NSMutableArray *array = ([customOnjectDate compare:currentDate] == NSOrderedAscending ? pastArray : futureArray);
        [array addObject:customobject2];
    }
    
    // Sort the arrays
    [pastArray sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
         return [[obj1 date] compare:[obj2 date]];
     }];
    [futureArray sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
         return [[obj1 date] compare:[obj2 date]];
     }];
    
    // Use the arrays
    NSLog(@"pastArray: %@", pastArray);
    NSLog(@"futureArray: %@", futureArray);
    
    // Don't forget to release the arrays after you use them
    [pastArray release];
    [futureArray release];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-14
      • 2011-10-11
      • 2020-10-27
      • 2019-06-30
      • 1970-01-01
      • 2013-06-03
      • 2011-08-09
      • 1970-01-01
      相关资源
      最近更新 更多