我有一个A类对象的数组,让它成为detailsArray。
A类有日期,名称为属性。
任何人都可以提出一个基于日期对这个数组进行排序的好方法吗?
如何使用NSSortDescriptor
对此数组进行排序?我知道使用NSSortDescriptor
...
非常感谢任何帮助......
答案 0 :(得分:14)
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:NO];
NSArray *sortedArray = [detailsArray sortedArrayUsingDescriptors:@[sortDescriptor]];
答案 1 :(得分:5)
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO];
NSArray *descriptors = [NSArray arrayWithObject: descriptor];
NSArray *reverseOrder = [dateArray sortedArrayUsingDescriptors:descriptors];
答案 2 :(得分: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];
}];
答案 3 :(得分:1)
您需要通过类名提供密钥转发,例如
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"ClassA.date" ascending:YES];
在提出任何问题之前,和执行谷歌查询您的查询,请参阅Google抓取工具result.