6

我有一个 A 类对象的数组,让它成为 detailsArray。

A 类具有日期、名称作为属性。

任何人都可以建议一种根据日期对该数组进行排序的好方法吗?

我怎样才能使用NSSortDescriptor这个数组排序?NSSortDescriptor我知道使用...排序字典数组

任何帮助是极大的赞赏.....

4

4 回答 4

17
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:NO];
NSArray *sortedArray = [detailsArray sortedArrayUsingDescriptors:@[sortDescriptor]];
于 2013-03-21T06:34:40.467 回答
5
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO];
NSArray *descriptors = [NSArray arrayWithObject: descriptor];

NSArray *reverseOrder = [dateArray sortedArrayUsingDescriptors:descriptors];
于 2013-03-21T06:33:32.003 回答
3
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];
}];
于 2013-03-21T06:31:30.877 回答
1

您需要通过其类名提供密钥转发,例如

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

并在提出任何问题之前搜索的查询,查看谷歌爬虫结果。

于 2013-03-21T06:37:32.870 回答