基于 Objective-C OC的省市区代码(字典数组嵌套)

本文介绍如何在Objective-C中创建一个包含省市区信息的字典数组结构,用于应用程序的地址选择功能。详细阐述了如何组织嵌套的数据结构,以便于检索和使用。

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

</pre><p style="margin-top: 0px; margin-bottom: 0px; font-size: 14px; font-family: Menlo; color: rgb(75, 209, 87);"><span style="background-color: rgb(240, 240, 240); font-family: Arial, Helvetica, sans-serif; font-size: 12px;">//这是关于 字典与数组嵌套使用的一道经典例题,</span></p><pre name="code" class="objc">//为了能让正在学习OC的伙伴们看的更加明白 注释写得很是详细

<img src="https://img-blog.youkuaiyun.com/20151110200433699?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="font-family: Arial, Helvetica, sans-serif;" alt="" /></pre><pre name="code" class="objc">//
//  main.m
//  _Practice
//
//  Created by dllo on 15/11/10.
//  Copyright (c) 2015年 dllo. All rights reserved.
//
#import <Foundation/Foundation.h>

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

       
        //省市区
        //引入文件
        NSString *path = @"/Users/dllo/Desktop/项目程序源文件/Objective-C程序/_Practice/_Practice/area.txt";
        //新建字符串 用文件初始化
        NSString *text  = [ NSString  stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        //以换行符分隔 存入数组中
        NSArray *lineArray = [ text componentsSeparatedByString:@"\n"];
        //创建一个省数组存放所有的 省字典
        NSMutableArray *proArray = [[NSMutableArray alloc] init];
        
        //遍历 分割后的数组 将其放入对应的 省 市 区内
        for (NSString * line  in lineArray) {
            //如果是省(省开通没有空格)
            if (![line hasPrefix:@" "]) {
                //创建新的省字典
                NSMutableDictionary *proDictonary = [NSMutableDictionary dictionary];
                //创建市数组来存放 他的市
                NSMutableArray *cityArray  = [NSMutableArray array];
                //@"city"作为key 省下得city数组作为value
                [proDictonary setObject:cityArray  forKey:@"city"];
                //@"pro"作为key 省得名字 作为value
                [proDictonary setObject:line forKey:@"pro"];
                //将创建的省字典放入省数组中
                [proArray addObject:proDictonary];
                
                //当前行 如果是市(开头两个空格)
            }else if (! [line hasPrefix:@"   "] ){
                //创建市字典
                NSMutableDictionary *cityDictionary = [NSMutableDictionary dictionary];
                //创建区数组 来存放他的区
                NSMutableArray *zoneArray = [NSMutableArray array];
                //@"zone"作为key  zone数组作为value
                [cityDictionary setObject:zoneArray forKey:@"zone"];
                //@"city"作为key 市的名字(line)作为 value
                [cityDictionary setObject: line  forKey:@"city"];
                //将创建的 city字典 放入所属的省中
                [[[proArray lastObject ] objectForKey:@"city"] addObject:cityDictionary];
                
            }else {
                //将区(line)放入所属的市中
                [[[[[proArray lastObject] objectForKey:@"city"] lastObject ] objectForKey:@"zone"] addObject:line];
                
                
            }
        }
        
        
        //打印
        //通过省数组 找出每个省字典
        for (NSMutableDictionary *proDic in proArray) {
            //通过 省字典的key (@"pro" ) 找到对应省得名字
            NSLog(@"%@", [proDic objectForKey:@"pro"]);
            //通过市数组 找到每个市字典
            for (NSMutableDictionary *cityDic in [proDic objectForKey:@"city"]) {
                //通过  市字典的key@"city" 找到市的名字
                NSLog(@"%@",[cityDic objectForKey:@"city"]);
                //在 区数组中 遍历 打印区
                for (NSString *zone in [cityDic objectForKey:@"zone"]) {
                    NSLog(@"%@",zone);
                }
            }
        }
        
     


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值