//将汉字转换成拼音
+ (NSString *)convertNameToCharactor:(NSString *)name
{
//转成了可变字符串
NSMutableString *str = [NSMutableString stringWithString:name];
//先转换为带声调的拼音
CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);
//再转换为不带声调的拼音
CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO);
//转化为大写拼音
NSString *pinYin = [str capitalizedString];
//获取并返回首字母
return pinYin;
}
//截取拼音的首字母
+ (NSString *)extractFirstABCWithCharactor:(NSString *)name{
NSString * pinyin = [self convertNameToCharactor:name];
if(pinyin.length > 0){
return [pinyin substringWithRange:NSMakeRange(0, 1)];
}
return nil;
}
//排序,排序的根据是字母
NSComparator cmptr = ^(id obj1, id obj2){
if ([obj1 characterAtIndex:0] > [obj2 characterAtIndex:0]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([obj1 characterAtIndex:0] < [obj2 characterAtIndex:0]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
};
//letterArray 为首字母的数组
self.letterArray = [[NSMutableArray alloc]initWithArray:[self.letterArray sortedArrayUsingComparator:cmptr]];