http://stackoverflow.com/questions/25685734/incorrect-chinese-number-sort-order-on-ios-using-nslocale-zh-hans-cn
Han collation support:
Pinyin: A B C D …
Stroke: 1 2 3 …
Radical-Stroke: radicals
1 2 3 4 5 6 7 8 9 10 11 12 13 |
NSLocale* strokeSortingLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh@collation=pinyin"]; NSComparator compareByStroke = ^NSComparisonResult(id obj1, id obj2) { return [obj1 compare:obj2 options:0 range:NSMakeRange(0, [obj1 length]) locale:strokeSortingLocale]; }; NSSortDescriptor* sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES comparator:compareByStroke]; NSArray* sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; NSArray *outOfOrder = @[@"十", @"七", @"一", @"二", @"四", @"三", @"五", @"六", @"八", @"九"]; NSArray* sortedArray = [outOfOrder sortedArrayUsingDescriptors:sortDescriptors]; NSLog(@"--------- END ------------ "); |