省市区字典

本文详细介绍了在iOS开发中如何管理和使用省市区字典,包括Objective-C中的字符串操作,以及如何将字典数据转化为NSString对象,为应用程序的地理位置功能提供支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    // 首先需要将省市区TXT文本放入工程里main下边,再从工程里将其拖拽到path的字面量里边,开始创建省市区字典
    // 设置路径
    NSString *path = @"/Users/dlios/Desktop/C和OC笔记,作业/OC6_字典/area.txt";
    // 根据路径产生相应的字符串
    NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    // 对字符串逐行进行切割
    NSArray *strArr = [str componentsSeparatedByString:@"\n"];
    // 打印切割后的字符串 这也是我们要得到的结果
//    for (NSString *temp in strArr) {
//        NSLog(@"%@", temp);
//    }
    // 创建一个省数组
    NSMutableArray *proArr = [NSMutableArray array];
    for (NSString *temp in strArr) {
        if (![temp hasPrefix:@" "]) {
            // 创建一个省的字典
            NSMutableDictionary *proDic = [NSMutableDictionary dictionary];
            // 给省字典添加键值对
            // 省名
            [proDic setObject:temp
                    forKey:@"provinceName"];
            // 创建一个市数组
            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 *areaArr = [NSMutableArray array];
            [cityDic setObject:areaArr forKey:@"areaArr"];
//            NSMutableArray *cityArr = [proArr lastObject];
//            [cityArr addObject:cityDic];
            // 给市字典找一个位置
            // 先找到对应的省字典
            NSMutableDictionary *proDic = [proArr lastObject];
            // 在找对应的市数组
            NSMutableArray *cityArr = proDic[@"cityArr"];
            // 最后再把字典放入到市数组中
            [cityArr addObject:cityDic];
        } else {    // if ([temp hasPrefix:@"    "])
            // 先找省字典
            NSMutableDictionary *proDic = [proArr lastObject];
            // 市数组
            NSMutableArray *cityArr = proDic[@"cityArr"];
            // 市字典
            NSMutableDictionary *cityDic = [cityArr lastObject];
            // 区数组
            NSMutableArray *areaArr = cityDic[@"areaArr"];
            // 添加
            [areaArr addObject:temp];
            // 由于区已经是最小的地域单位,区数组只需要存区名这一组对象 不需要再创建一个区字典了
//            NSMutableDictionary *areaDic = [NSMutableDictionary dictionary];
//            [areaDic setObject:temp forKey:@"areaName"];
//            NSMutableArray *areaArr = [NSMutableArray array];
//            NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];
//            [cityDic setObject:areaArr forKey:@"areaArr"];
//            //            NSMutableDictionary *proDic = [proArr lastObject];
//            cityDic = [proArr lastObject];
//            areaArr = cityDic[@"areaArr"];
        }
    }
    for (NSDictionary *proDic in proArr) {
        NSLog(@"%@", proDic[@"provinceName"]);
        NSMutableArray *cityArr = proDic[@"cityArr"];
        for (NSDictionary *cityDic in cityArr) {
            NSLog(@"%@", cityDic[@"cityName"]);
            NSMutableArray *areaArr = cityDic[@"areaArr"];
            for (NSString *temp in areaArr) {
                NSLog(@"%@", temp);
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值