所以我有一個應用程序,我想按任意區域排序數據 - 而不是電話區域設置。 在我看來,iOS給中國人的排序順序是錯誤的(但我不知道中文),所以有人可以告訴我這是正確的嗎?使用NSLocale zh_Hans_CN在iOS上不正確的中文號碼排序順序?
我相信,無論對於簡化/ TRAD中國,數字1至10是:
一,二,三,四,五,六,七,八,九,十
這裏是我的測試代碼:
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"zh_Hans_CN"];
NSArray *outOfOrder = @[@"十", @"七", @"一", @"二", @"四", @"三", @"五", @"六", @"八", @"九"];
NSSortDescriptor *nameDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"description" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2)
{
return [(NSString *)obj1 compare:(NSString *)obj2 options:NSCaseInsensitiveSearch range:NSMakeRange(0, [(NSString *)obj1 length]) locale:locale];
}];
NSArray *sorted = [outOfOrder sortedArrayUsingDescriptors:[NSArray arrayWithObject:nameDescriptor]];
但數組排序出來是這樣的: 八, 二, 九, 六, 七, 三, 十, 四, 五, 一
當然中國應該有點像用1..9相當於其次是「字」字等其他語言?
中國和日本的排序使用部首和筆畫的字符或發音音譯(拼音)。他們的意義不起作用。根據[文檔](https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Strings/Articles/SearchingStrings.html#//apple_ref/doc/uid/20000149-SW1),如果你想Finder喜歡排序傳遞'NSCaseInsensitiveSearch | NSNumericSearch | NSWidthInsensitiveSearch | NSForcedOrderingSearch'。儘管如此,這不會改變排序順序。 – orkoden 2014-09-05 12:41:41