省市区字典类型--OC方法

来源:互联网 发布:看门狗win10优化补丁 编辑:程序博客网 时间:2024/05/18 00:00

我觉得字典问题有点类似于嵌套的问题,在解决问题前可以将相互之间的关系写出来再进行编写,这样会使思路更加清晰.在打印的时候就相当于剥皮,从外层开始一层层进行.

//先将txt文件的路径添加到工程中NSString *path =@"/Users/dlios/Desktop/.....";//根据路径产生相应的字符串NSString *str =[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];//对字符串进行逐行切割NSArray *strArr = [str componentsSeparatedByString:@"\n"];
//创建一个省数组NSMutableArray *proArr = [NSMutableArray array];//遍历字符串数组for (NSString *temp in strArr){    if ( ! [temp hasPrefix:@" "]){        //创建一个省的字典去存放省名        NSMutableDictionary *proDic = [NSMutableDictionary dictionary];        //想将省名放进去 就得通过创建键值对的方式存放        //省名的键值对的创建        [proDic setObject:temp forKey:@"proName"];
//因为省之下有市,所以也得在省的字典中创建市数组取存放该省的各个市名        NSMutableArray *cityArr = [NSMutableArray array];        //将市数组添加到省字典中作为第二对键值.        [proDic setObject:cityArr forKey:@"cityArr"];        //因为这些都是属于省数组的,所以得把省字典放到省数组中        [proArr addObject:proDic];    }else if ( [temp hasPrefix:@"  "]&& ![temp hasPrefix:@"    "]){        //同找到省名一样,得创建一个市名的字典区存放市名        NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];        //将市名作为键值对放进字典        [cityDic setObject:temp forKey:@"cityName"];        //同省字典一样 我也得创建区数组取存放区的内容        NSMutableArray *zoneArr = [NSMutableArray array];        [cityDic setObject:zoneArr  forKey:@"zoneArr"];
   //创建完成后需要将市字典找到存放的位置        //先找到对应的省字典位置        NSMutableDictionary *proDic =[proArr lastObject];        //再找到对应市数组        NSMutableArray *cityArr = proDic [@"cityArr"];        //将市字典放到是数组中        [cityArr addObject:cityDic];        }else{        //先找到省字典        NSMutableDictionary *proDic = [proArr lastObject];        //市数组        NSMutableArray *cityArr = proDic[@"cityArr"];        //市字典        NSMutableDictionary *cityDic = [cityArr lastObject];        //区数组        NSMutableArray *zoneArr = cityDic[@"zoneArr"];        //添加区名        [zoneArr addObject:temp];        }    }    for( NSMutableDictionary *dic in proArr){        NSLog(@"%@",dic[@"proName"]);        NSMutableArray * cityArr = dic[@"cityArr"];            for (NSMutableDictionary *cityDic in cityArr){             NSLog(@"%@",cityDic[@"cityName"]);             NSMutableArray *zoneArr = cityDic[@"zoneArr"];             for(NSString *zone in zoneArr){            NSLog(@"%@",zone);             }            }    }
0 0
原创粉丝点击