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