排序
基础框架声明了 NSComparator
类型比较两个项目:
typedef NSComparisonResult (^NSComparator)(id obj1, id obj2); |
NSComparator
是一块类型,它需要两个对象并返回一个吗 NSComparisonResult
价值。 这是一个参数的方法 NSSortDescriptor
, nsarray
, nsdictionary
和使用这些类的实例分类。 清单1 - 7 使其使用的一个例子。
NSArray *stringsArray = [NSArray arrayWithObjects: |
@"string 1", |
@"String 21", |
@"string 12", |
@"String 11", |
@"String 02", nil]; |
static NSStringCompareOptions comparisonOptions = NSCaseInsensitiveSearch | NSNumericSearch | |
NSWidthInsensitiveSearch | NSForcedOrderingSearch; |
NSLocale *currentLocale = [NSLocale currentLocale]; |
NSComparator finderSort = ^(id string1, id string2) { |
NSRange string1Range = NSMakeRange(0, [string1 length]); |
return [string1 compare:string2 options:comparisonOptions range:string1Range locale:currentLocale]; |
}; |
NSLog(@"finderSort: %@", [stringsArray sortedArrayUsingComparator:finderSort]); |