排序包含字典和外来字母的数组?

时间:2011-02-07 14:37:11

标签: iphone objective-c arrays sorting

我有一个包含一堆字典的数组,这些字典由两个名为name和value的键组成。

我正在尝试根据字典的名称键对数组进行排序 - 但字典中包含以错误顺序显示的丹麦字母(fx'aåbc',而不是'abc..å' ) - 如何使用丹麦字符正确排序?

NSSortDescriptor *nameSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
self.cityOptionsArray = (NSMutableArray *)[tempCityArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:nameSortDescriptor]];

1 个答案:

答案 0 :(得分:1)

NSSortDescriptor有一个初始化程序,允许您对它所操作的对象调用自定义比较方法。

在您的情况下,(并且由于您的密钥为NSStrings),您要使用localizedCompare:

你可以像这样使用它:

NSSortdescriptor *nameSortDescriptor = [[NSSortDescriptor alloc]
          initWithKey:@"name"
          ascending:YES
          selector:@selector(localizedCompare:)];

请在完成之后记得发布它。

如需进一步参考,请参阅 Sort Descriptor Programming Topics