Objective-C 省市区 字典 封装

    //整体原理思路:
    
    //一个大数组,包含省字典
    //省字典包含 省名字,下属市数组
    //市数组包含市字典
    //市字典包含 市名字,下属区数组

    //数组=》字典=》数组=》字典=》数组




//导入TXT文件
    NSString * path = @"/Users/dllo/Desktop/DSL150512-04/OC/6.18 练习 省市区 字典封装/6.18 练习 省市区 字典封装/area.txt";
    
    
    //转化成NSString格式
    NSString * area = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    
    //按“\n”即按行拆分,并装入areaArray数组
    NSArray * areaArray = [area componentsSeparatedByString:@"\n"];
    
    
    //创建一个大数组 mutableArray 装 "省" 字典
    NSMutableArray * mutableArray = [NSMutableArray array];
    
    for (NSString * str in areaArray) {
        if (![str hasPrefix:@" "]) {
            
            //只要找到"省"名,就创建字典 provinceDic
            NSMutableDictionary * provinceDic = [NSMutableDictionary dictionary];
            
            //将省名存入 "省" 字典中 赋予Key标签为"name"
            [provinceDic setValue:str forKey:@"name"];
        
            //将 "省" 字典存入大数组 mutableArray
            [mutableArray addObject:provinceDic];
            

            
            
            //          预备使用内容,本if里不起作用
            
            
            
            //创建一个 市 数组cityArray(预备使用,本if里不起作用)
            NSMutableArray * cityArray = [NSMutableArray array];
            
            //将市数组cityArray 存入 "省" 字典provinceDic,赋予Key标签为 “cityArray”;(预备使用,本if里不起作用)
            
            [provinceDic setValue:cityArray forKey:@"cityArray"];
            
            
            //*******此时省字典provinceDic包含(省名str+市数组cityArray)***********
            
            
        }
        
        
        if ([str hasPrefix:@"  "] && ![str hasPrefix:@"    "]) {
            
            //确定上一循环的 "省" 名 proDic
            
            NSMutableDictionary * proDic = [mutableArray lastObject];
            
            //通过Key标签 “cityArray” 提取 "省" 字典proDic 中的市数组cityArray
            NSMutableArray * cityArray = [proDic objectForKey:@"cityArray"];
            
            //创建 "市" 字典cityDic
            
            NSMutableDictionary * cityDic = [NSMutableDictionary dictionary];
            
            //将市名str存入 “市” 字典中,赋予Key标签为 "cityName"
            
            [cityDic setValue:str forKey:@"cityName"];
            
            //将 “市” 字典的存入 市数组cityArray中
            
            [cityArray addObject:cityDic];
            
            
            
            
            
            
            
            
                  //     预备使用内容,本if里不起作用
            
            
            
            
            //创建 区 数组areaArray (预备使用,本if里不起作用)
            
            NSMutableArray * areaArray = [NSMutableArray array];
            
            //将 区 数组 areaArray 装入“市”字典cityDic,并赋予Key标签为"areaArray"(预备使用,本if里不起作用)
            [cityDic setValue:areaArray forKey:@"areaArray"];

            
            
            //***********此时市字典cityDic包含(市名str+区数组areaArray)************
        
    
            
        }
        
        
        
        
        if ([str hasPrefix:@"    "]) {
            
            //取出大数组 mutableArray 上一循环省字典proDic(省名+市数组cityArray)
            NSMutableDictionary * proDic = [mutableArray lastObject];
            
            
            //通过Key标签 "cityArray" 提取上一循环 省字典proDic(省名+市数组cityArray) 中的市数组cityArray
            NSMutableArray * cityArray = [proDic objectForKey:@"cityArray"];
            
            //通过 市数组cityArray 提取上一循环的市字典(市名+区数组areaArray)cityDic
            
            NSMutableDictionary * cityDic = [cityArray lastObject];
            
            //通过Key标签“areaArray”取出 市字典cityDic(市名+区数组areaArray) 中的 区数组areaArray
            
            NSMutableArray * areaArray = [cityDic objectForKey:@"areaArray"];
            
            //将区名 str 存入区数组areaArray中
            [areaArray addObject:str];
            
            
        }
        
    }
    
    //循环打印
   
    for (NSDictionary * dic in mutableArray) {
        
        NSLog(@"%@",[dic objectForKey:@"name"]);
        
        for (NSDictionary * cityDic in [dic objectForKey:@"cityArray"]) {
            
            NSLog(@"%@",[cityDic objectForKey:@"cityName"]);
            
            for (NSString * str in [cityDic objectForKey:@"areaArray"]) {
                
                NSLog(@"%@",str);
                
            }
        }
    }
    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值