2013-03-21 3 views
3

У меня есть массив объектов класса А, пусть это будет detailsArray.Сортировка массива с использованием NSSortDescriptor

Класс A имеет дату, название как свойства.

Может ли кто-нибудь предложить хороший метод для сортировки этого массива на основе даты?

Как я могу использовать NSSortDescriptor, чтобы отсортировать этот массив? Я знаю сортировки массив словаря с использованием NSSortDescriptor ...

Любая помощь очень ценится .....

+1

Проверьте мой ответ здесь http://stackoverflow.com/questions/13667288/how-to-sort-nsmutablearray-of -date-objects –

+0

Я этого не видел, извините .... –

ответ

10
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:NO]; 
NSArray *sortedArray = [detailsArray sortedArrayUsingDescriptors:@[sortDescriptor]]; 
+0

Должно быть: sortedArrayUsingDescriptors – jomafer

2
NSSortDescriptor *sortDescriptor; 
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"date" 
               ascending:YES] autorelease]; 
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 
NSArray *sortedArray; 
sortedArray = [yourArray sortedArrayUsingDescriptors:sortDescriptors]; 

или вы можете использовать блок также

NSArray *sortedArray; 
sortedArray = [yourArray sortedArrayUsingComparator:^NSComparisonResult(A *a, A *b) { 
    NSDate *first = a.date; 
    NSDate *second = b.date; 
    return [first compare:second]; 
}]; 
4
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO]; 
NSArray *descriptors = [NSArray arrayWithObject: descriptor]; 

NSArray *reverseOrder = [dateArray sortedArrayUsingDescriptors:descriptors]; 
1

Необходимо указать ключевое слово, например

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"ClassA.date" ascending:YES]; 

и делать Google ваших запросов, прежде чем задать любой вопрос, увидеть Google искатель result.

Смежные вопросы