有一个带有一些NSRange值的数组:@[[NSVale valueWithRange:{5,3}],[NSVale valueWithRange:{2,3}],[NSVale valueWithRange:{7,3}],[NSVale valueWithRange:{1,3}],....]
每个range
都有一个不同的location
,我希望该数组按range.location
的反向顺序排序,有什么好的解决方法吗?
最佳答案
sortedArrayUsingComparator:是完成任务的最佳选择。
您的案例的代码是:
NSArray *array = @[[NSValue valueWithRange:NSMakeRange(5,3)],
[NSValue valueWithRange:NSMakeRange(2,3)],
[NSValue valueWithRange:NSMakeRange(7,3)],
[NSValue valueWithRange:NSMakeRange(1,3)]];
array = [array sortedArrayUsingComparator:^NSComparisonResult(NSValue *value1, NSValue *value2) {
NSComparisonResult result = NSOrderedSame;
if (value1.rangeValue.location > value2.rangeValue.location) {
result = NSOrderedAscending;
} else if (value1.rangeValue.location < value2.rangeValue.location) {
result = NSOrderedDescending;
}
return result;
}];
关于ios - 对包含NSRange值的数组进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23297416/