汉字转字母分组

+ (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];
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容