iOS省市区字典封装

本文详细介绍了在iOS开发中如何进行省市区字典的封装,包括可能遇到的问题及解决方案,附带了详细的注释。
摘要由CSDN通过智能技术生成

相信很多同学在学习iOS时候都会遇到省市区字典的封装的问题,也遇到了各种各样的问题。今天抽空给大家写了一下,给了自己的注释。

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
  //一个大数组包含省字典
  //省字典包含 省名字 下属市数组
  //市数组包含市字典
  //市字典包含市名字,下属区数组
  // 数组-> 字典->数组->字典->数组
    NSString * path= @"/Users/liuanguo/Desktop/oc/Dictionary/Dictionary/area.txt";
    NSString * area=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    NSArray * array=[area componentsSeparatedByString:@"\n"];
    NSMutableArray * mutableArray =[[NSMutableArray alloc]init];
    
    for (NSString * str  in array) {
        
        if ( ![str hasPrefix:@"  "]) {
            //只要找到声名,就创建一个字典
            NSMutableDictionary * provinceDic =[[NSMutableDictionary alloc]init];
            //省名存入省字典
            [provinceDic setValue:str forKey:@"name"];
            //创建一个数组,保存市字典
            NSMutableArray * cityArray=[[NSMutableArray alloc]init];
            //将数组存入字典,用来保存下属市的字典
            [provinceDic setValue:cityArray forKey:@"cityArray"];
            //将省字典存入大数组
            [mutableArray addObject:provinceDic];
        }
        
        if ([str hasPrefix:@"  "] && ![str hasPrefix:@"    "]) {
            //每找到一个市,将大数组最后一个省字典找出
            NSMutableDictionary * proDic  = [mutableArray lastObject];
            //找出省字典中的数组
            NSMutableArray * proArray =[proDic objectForKey:@"cityArray"];
            //创建市字典
            NSMutableDictionary * cityDic =[NSMutableDictionary dictionary];
            [cityDic setValue:str forKey:@"cityName"];
            //创建市下属区数组,并装入市字典
            NSMutableArray * areaArray =[NSMutableArray array];
            [cityDic setValue:areaArray forKey:@"areaArray"];
            //将市字典装入省字典的数组中
            [proArray addObject:cityDic];
        }
        if ([str hasPrefix:@"    "]) {
            //取出大数组最后一个元素(省字典)
            NSMutableDictionary * proDic=[mutableArray lastObject];
            //取出省字典中的数组(保存下属市的数组)
            NSMutableArray * proArray =[proDic objectForKey:@"cityArray"];
            //取出省数组中的最后一个元素(市字典)
            NSMutableDictionary * cityDic =[proArray lastObject];
            //取出市字典中的数组(区数组)
            NSMutableArray * areaArray =[cityDic objectForKey:@"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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值