按俄语字母顺序对UITableView进行排序

时间:2010-11-02 20:31:15

标签: iphone uitableview ios

我是个菜鸟,我很抱歉,因为这个问题非常愚蠢。我有一个NSArray,其中包含俄语NSDictionaries中UITableView行的标题,我需要按字母顺序对这些标题进行排序。我该怎么做?

请帮帮我。

提前致谢!

2 个答案:

答案 0 :(得分:1)

在iOS 4.0及更高版本中,您可以使用排序描述符。假设title是您的标题字符串存储在词典中的键:

NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:
                         [NSArray arrayWithObject:
                          [NSSortDescriptor sortDescriptorWithKey:@"title"
                                                        ascending:YES
                                                         selector:@selector(localizedCaseInsensitiveCompare:)]]];

另一种选择是使用基于块的排序方法:

NSArray *sortedArray = [myArray sortedArrayUsingComparator:^(id obj1, id obj2) {
    NSString *string1 = [(NSDictionary *)obj1 objectForKey:@"title"];
    NSString *string2 = [(NSDictionary *)obj2 objectForKey:@"title"];
    return [string1 localizedCaseInsensitiveCompare:string2];
}];

但是,如果您需要在iOS 3.1.3及更早版本上运行您的应用,您可以:

  • 将比较方法写为NSDictionary上的类别,并将其传递给-sortedArrayUsingSelector:
  • 编写比较函数并将其传递给-sortedArrayUsingFunction:context:

在每种情况下,您的方法或函数的主体将与上面第二个示例中的主体基本相同。 NSArray class reference包含两种技术的示例。

答案 1 :(得分:0)

我认为这会对您的数组进行排序:

NSArray *sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];