#Objective - C - sixth-Day OC小练习 省市区排序

思路总结

  • 先取导入的text地区数据
  • 进行分割->放入省数组 (字符串分割)
  • 遍历省数组 ->创建新数组 获取省数组
  • (条件寻找省中) 创建省字典->value:省数组 key:@”省名字” (先取出省的地区信息)
  • 创建一个市数组 (放入省字典中-备用) (这时省字典里的市数组为:null 空)
  • (条件寻找市中) 创建市字典->value:市数组 key@”市名字” (取出市的地区信息)
  • 创建新的市数组 (对应省字典中->市数组)
  • 创建区数组放入 市字典中 (同理数组为:nil 空)
  • 将市字典放入市数组 (对应省字典中市数组)
  • (条件遍历剩下区) 创建区数组 (对应区数组->市字典->市数组->省字典->省数组)

    • -
  • 屡第一个if思路:
  • 省数组里有省字典
  • 省字典有两个大键值对:
  • 省信息 和 市数组(且空)

代码为:

    //省市区练习 (排序)

    //放入文档
    //NSString *path = @"/Users/lan/Desktop/IOS培训/OC/Hawin_OC_06-省市区/Hawin_OC_06-省市区/area.txt";
    NSString *path = [[NSBundle mainBundle]pathForResource:@"area" ofType:@"txt"];
    //根据路径产生相应字符串
    NSString *pathstring = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    //切割字符串
    NSArray *strarr = [pathstring componentsSeparatedByString:@"\n"];
    //创建省数组province
    NSMutableArray *proarr = [NSMutableArray array];
    //遍历切割后 所有省市区字符串
    for (NSString *mess in strarr) {//两个空格,不为市,获取省的信息
        if (![mess hasPrefix:@"  "]) {
            //创建省的字典 (可变)
            NSMutableDictionary *prodic = [NSMutableDictionary dictionary];
            //给省字典添加 省数组和key
            [prodic setObject:mess forKey:@"省名字"];//NSString *mess
            //创建市数组 (可变)
            NSMutableArray *cityarr = [NSMutableArray array];
            //市数组也放入字典中
            [prodic setObject:cityarr forKey:@"市数组"];
            //把省字典放入 省数组
            [proarr addObject:prodic];
        }else if ([mess hasPrefix:@"  "] && ![mess hasPrefix:@"    "]){//取剩下的,条件四个空格,不为区,获取市的信息
            //查找城市      创建市字典
            NSMutableDictionary *citydic = [NSMutableDictionary dictionary];
            //字典添加key市名
            [citydic setObject:mess forKey:@"市名字"];
            //创建区的数组
            NSMutableArray *areadic = [NSMutableArray array];
            //添加入市字典
            [citydic setObject:areadic forKey:@"区数组"];
            //找 对应的省字典 (数组最后一个元素)
            NSMutableDictionary *prodic = [proarr lastObject];
            //然后再找对应的市 数组
            NSMutableArray *cityarr = prodic[@"市数组"];
            //将市字典放入 市数组
            [cityarr addObject:citydic];
        }else{//取完省和市信息后剩下的区信息
            //找到省字典
            NSMutableDictionary *prodic = [proarr lastObject];
            //市数组
            NSMutableArray *cityarr = prodic[@"市数组"];
            //市字典
            NSMutableDictionary *citydic = [cityarr lastObject];
            //区数组(获取自 对应市字典中)
            NSMutableArray *areaarr = citydic[@"区数组"];
            //取剩下的区的值
            [areaarr addObject:mess];
        }
    }
    for (NSMutableDictionary *dic in proarr) {//遍历省数组 (省字典放入新建字典)
        NSLog(@"%@",dic[@"省名字"]);//获取key"省名字"的value
        NSMutableArray *cityarr = dic[@"市数组"];//如上创建市数组 (在省字典中)
        for (NSMutableDictionary *citydic in cityarr) {//遍历市数组 (市字典放入新建字典)
            NSLog(@"%@",citydic[@"市名字"]);//获取key"市名字"的value
            NSMutableArray *areaarr = citydic[@"区数组"];//创建区数组
            for (NSString *area in areaarr) {//遍历区数组 (字符串获取)
                NSLog(@"%@",area);//输出区
            }
        }
    }

你可能感兴趣的:(OC-菜鸟之路)