问题
How do I make this piece of code to order in descending order. This code always gives me the array in ascending order:
NSArray *sortedProductsByStyle = [unsortedProducts sortedArrayUsingComparator: ^(Product *p1, Product *p2) {
return [p1.productStyle compare:p2.productStyle options:NSNumericSearch];
}];
I thought that using NSOrderedDescending would work but it didn't:
NSArray *sortedProductsByStyle = [unsortedProducts sortedArrayUsingComparator: ^(Product *p1, Product *p2) {
return [p1.productStyle compare:p2.productStyle options:NSNumericSearch | NSOrderedDescending];
}];
Any ideas?
回答1:
How about just inverting the compare order?
NSArray *sortedProductsByStyle = [unsortedProducts sortedArrayUsingComparator: ^(Product *p1, Product *p2) {
return [p2.productStyle compare:p1.productStyle options:NSNumericSearch];
}];
回答2:
Try this way...
sortedArray = [unsortedProducts sortedArrayUsingComparator:^(Product p1 , Product p2) {
return [((NSString *)p1.productStyle) compare:((NSString *)p2.productStyle) options:NSNumericSearch];
}];
Let me know if you have any problem.
来源:https://stackoverflow.com/questions/19217072/how-to-sort-nsarray-of-custom-objects-by-a-specific-property-in-descending-order