//排序方法 [self.groupUserArray sortUsingComparator:^NSComparisonResult(GroupUserModel *obj1, GroupUserModel *obj2) { NSMutableString *str1 = [obj1.name mutableCopy]; NSMutableString *str2 = [obj2.name mutableCopy]; str1 = [self getLatinWithFullName:str1]; str2 = [self getLatinWithFullName:str2]; NSComparisonResult result = [str1 compare:str2]; return result; }];
1 //优化速度 2 - (NSString *)getLatinWithFullName:(NSString *)name{ 3 //1.先从缓存中获得latin,然后再判断是否存在,再将非字符串转化成拉丁字母 4 NSString* latin = [self.pinyinDic objectForKey:name]; 5 if (latin) { 6 return latin; 7 }else { 8 latin = [NSString stringWithString:name]; 9 CFStringTransform((__bridge CFMutableStringRef)latin, NULL, kCFStringTransformMandarinLatin, NO); 10 CFStringTransform((__bridge CFMutableStringRef)latin, NULL, kCFStringTransformStripDiacritics, NO); 11 [self.pinyinDic setObject:latin forKey:name]; 12 return latin; 13 }