随着应用的社交性需求的增加,你的应用也无法避免的要加入好友列表。但好友太多怎么办?就需要将好友的名字按拼音来排序。下面我就讲一下如何将一个数组中的若干好友的dictionary按名字拼音排序:
[_friendObjectArray sortUsingFunction:friendSortFuc context:nil];
上面这句代码会调用一个名为 friendSortFuc的方法来使_friendObjectArray变得有序。
下面是这个方法的实现:
static NSInteger friendSortFuc(NSDictionary *oneDic, NSDictionary *otherDic, void *context) {
Pinyin *pinyin = [Pinyin getInstance];
NSString *oneNamePinyin = [pinyin.map objectForKey:[[oneDic objectForKey:@"user_name"] substringToIndex:1]];
NSString *otherNamePinyin = [pinyin.map objectForKey:[[otherDic objectForKey:@"user_name"] substringToIndex:1]];
if (oneNamePinyin == nil) {
oneNamePinyin = @"~";
}
if (otherNamePinyin == nil) {
otherNamePinyin = @"~";
}
return [oneNamePinyin compare:otherNamePinyin options:NSStringEnumerationByWords];
}
代码中的Pinyin类,已经有前辈准备好了,从这里下载:
http://www.cocoachina.com/bbs/read.php?tid-38851-page-1.html
在使用pinyin.map前,你需要load拼音表:
Pinyin *pinyin = [Pinyin getInstance];
if (pinyin.map == nil) {
[pinyin loadMap];
}
这样,_friendObjectArray就已经按照姓的拼音排好序了!简单吧~