我是个菜鸟,我很抱歉,因为这个问题非常愚蠢。我有一个NSArray,其中包含俄语NSDictionaries中UITableView行的标题,我需要按字母顺序对这些标题进行排序。我该怎么做?
请帮帮我。
提前致谢!
答案 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及更早版本上运行您的应用,您可以:
-sortedArrayUsingSelector:
或-sortedArrayUsingFunction:context:
。在每种情况下,您的方法或函数的主体将与上面第二个示例中的主体基本相同。 NSArray class reference包含两种技术的示例。
答案 1 :(得分:0)
我认为这会对您的数组进行排序:
NSArray *sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];