Сортировка массива дат, iPhone SDK - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть массив, который содержит разные значения даты.И я использовал следующий код для сортировки массива даты, все готово.

    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);

Теперь результат в комбинированном массиве. Мне нужно проверить каждое значение с текущим системным временем, загрузить в два разных массива и загрузить эти два массива в два раздела таблицы.Как я могу это реализовать?Пожалуйста, помогите мне найти решение.

1 Ответ

1 голос
/ 26 сентября 2011

Я думаю, что самое простое и быстрое (более короткое время выполнения) решение - это создать 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];
...