Как отсортировать NSMutableArray из NSMutableDictionary? - PullRequest
2 голосов
/ 13 мая 2010

У меня есть NSMutableArray NSMutableDictionary (объекты NSString). Один из объектов NSString на самом деле является датой, и мне нужно отсортировать NSMutableArray на основе этой даты, и я не хочу, чтобы он сортировал даты в виде строк. Как я могу это сделать?

Ответы [ 2 ]

6 голосов
/ 13 мая 2010

Если я правильно понимаю, ваш массив содержит словари, содержащие строки, и вы хотите отсортировать эти строки ... как даты. Возможно, что-то вроде этого:

[someArray sortWithOptions: 0 usingComparator: ^(id inObj1, id inObj2) {
    NSDate      *date1 = [NSDate dateWithString: [inObj1 objectForKey: @"dateString"]];
    NSDate      *date2 = [NSDate dateWithString: [inObj2 objectForKey: @"dateString"]];

    return [date1 compare: date2];
}];
1 голос
/ 13 мая 2010

Вам нужно будет использовать метод sortedArrayUsingFunction: context: .Например:

NSInteger comparator( NSDictionary *d1, NSDictionary *d2, void *context )
{
  return [[d1 objectForKey:@"date"] compare:[d2 objectForKey:@"date"]];
}

// In some method:
NSArray *sortedArray = [array sortedArrayUsingFunction:comparator context:nil];

Примечание: это не проверено.

...