Objective-C 省市区 字典 封装

int main(int argc, const char * argv[]) {

//一个大数组,包含省字典
//省字典包含 省名字,下属市数组
//市数组包含市字典
//市字典包含 市名字,下属区数组


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




NSString * path = @"/Users/dllo/Desktop/DSL150512-04/OC/6.18 练习 省市区 字典封装/6.18 练习 省市区 字典封装/area.txt";



NSString * area = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

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);
        }
    }
}

return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值