联系人按照A~~~Z排列

复制代码
    // 01 创建可变字典,存储每一个key对应的数据列表
    
    NSMutableDictionary *nationWithCodeDicList = [NSMutableDictionary dictionary];
    
    // 02 遍历数组_dataList中的小字典
    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"nationcodenumber" ofType:@"plist"];
    NSArray *_dataList = [NSArray arrayWithContentsOfFile:path];
    for (NSDictionary *nationWithCodeDic in _dataList) {
        
        // 03 得到国家名称
//        Model *model =[[Model alloc]init];
        NSString *nationName = nationWithCodeDic[@"Name"];
        
        // 04 转成可变字符串
        
        NSMutableString *mutableNationName = [NSMutableString stringWithString:nationName];
        
        // 05 先转换为带声调的拼音
        
        CFStringTransform((CFMutableStringRef)mutableNationName,NULL, kCFStringTransformMandarinLatin,NO);
        
        // 06 再转换为不带声调的拼音
        
        CFStringTransform((CFMutableStringRef)mutableNationName,NULL, kCFStringTransformStripDiacritics,NO);
        
        // 07 得到首字母之大写形式并设置为字典的一个key
        
        NSString *key = [mutableNationName substringToIndex:1].uppercaseString;
        NSLog(@"%@",key);
        // 08 获取nationWithCodeDicList中key对应的value(存放若干国家小字典的数组,国家名字的首字母都是key)nationWithCodeListKey
        
        NSMutableArray *nationWithCodeListKey = [nationWithCodeDicList objectForKey:key];
        
        // 09 若此数组为空,则创建并保存到字典对应的key
        
        if (nationWithCodeListKey == nil) {
            
            nationWithCodeListKey = [NSMutableArray array];
            
            [nationWithCodeDicList setObject:nationWithCodeListKey forKey:key];
            
        }
        //MKMKMKMKMKMKMKMKMK
        Model *model =[Model currentModelWithDict:nationWithCodeDic];
        // 10 若有此数组,就把本次遍历得到的数据(_dataList中的小字典)加入其中
        [nationWithCodeListKey addObject:model];
//        [nationWithCodeListKey addObject:nationWithCodeDic];
        // 11 获取当前好友列表中所有的组标题 使用compare得到有顺序的字母数组
        
        self.shouzimuarray = [[nationWithCodeDicList allKeys] sortedArrayUsingSelector:@selector(compare:)];
    }
    self.dictionart = nationWithCodeDicList;
复制代码

 

posted @   超神船长  阅读(218)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示