+ (void)AutoShelvesSortFromData:(NSArray<id> *)sourceArr result:(void(^)(NSDictionary *result))resultBlock{
dispatch_async(dispatch_get_global_queue(0, 0), ^{
__block NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[sourceArr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[self sortWithModel:obj resultDict:dict];
}];
dispatch_async(dispatch_get_main_queue(), ^{
!resultBlock?:resultBlock(dict);
});
});
}
+ (void)sortWithModel:(id)model resultDict:(NSMutableDictionary *)resultDict{
NSString *string = model.name;
//去除空格
string = [string trim];
if ([string length]) {
NSMutableString *mutableStr = [[NSMutableString alloc]initWithString:string];
if (CFStringTransform((__bridge CFMutableStringRef)mutableStr,0,kCFStringTransformMandarinLatin,NO)) {
}
//获取文本拼音
if (CFStringTransform((__bridge CFMutableStringRef)mutableStr,0,kCFStringTransformStripDiacritics,NO)) {
NSString *str = [NSString stringWithString:mutableStr];
//转成大写
str = [str uppercaseString];
//获取首字母
NSString *key = [str substringToIndex:1];
//根据首字母获取该分组数据
NSMutableArray *subArray = [resultDict objectForKey:key];
//不存在该分组,则创建
if (!subArray) {
subArray = [NSMutableArray array];
//存储该分组
[resultDict setObject:subArray forKey:key];
}
model.firstChar = key;
[subArray addObject:model];
}
}
}
汉字转字母分组
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 效果图如下 1.这是城市的接口:http://121.41.114.252/ab/service/citylist...
- 概述 工作中经常会遇到的一些排序问题,比如 按汉字的拼音首字母排序,比如人名排序等,就要用到下面的方法了,思路: ...