思路总结
- 先取导入的text地区数据
- 进行分割->放入省数组 (字符串分割)
- 遍历省数组 ->创建新数组 获取省数组
- (条件寻找省中) 创建省字典->value:省数组 key:@”省名字” (先取出省的地区信息)
- 创建一个市数组 (放入省字典中-备用) (这时省字典里的市数组为:null 空)
- (条件寻找市中) 创建市字典->value:市数组 key@”市名字” (取出市的地区信息)
- 创建新的市数组 (对应省字典中->市数组)
- 创建区数组放入 市字典中 (同理数组为:nil 空)
- 将市字典放入市数组 (对应省字典中市数组)
- (条件遍历剩下区) 创建区数组 (对应区数组->市字典->市数组->省字典->省数组)
-
- -
- 屡第一个if思路:
- 省数组里有省字典
- 省字典有两个大键值对:
- 省信息 和 市数组(且空)
代码为:
//省市区练习 (排序)
//放入文档
//NSString *path = @"/Users/lan/Desktop/IOS培训/OC/Hawin_OC_06-省市区/Hawin_OC_06-省市区/area.txt";
NSString *path = [[NSBundle mainBundle]pathForResource:@"area" ofType:@"txt"];
//根据路径产生相应字符串
NSString *pathstring = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
//切割字符串
NSArray *strarr = [pathstring componentsSeparatedByString:@"\n"];
//创建省数组province
NSMutableArray *proarr = [NSMutableArray array];
//遍历切割后 所有省市区字符串
for (NSString *mess in strarr) {//两个空格,不为市,获取省的信息
if (![mess hasPrefix:@" "]) {
//创建省的字典 (可变)
NSMutableDictionary *prodic = [NSMutableDictionary dictionary];
//给省字典添加 省数组和key
[prodic setObject:mess forKey:@"省名字"];//NSString *mess
//创建市数组 (可变)
NSMutableArray *cityarr = [NSMutableArray array];
//市数组也放入字典中
[prodic setObject:cityarr forKey:@"市数组"];
//把省字典放入 省数组
[proarr addObject:prodic];
}else if ([mess hasPrefix:@" "] && ![mess hasPrefix:@" "]){//取剩下的,条件四个空格,不为区,获取市的信息
//查找城市 创建市字典
NSMutableDictionary *citydic = [NSMutableDictionary dictionary];
//字典添加key市名
[citydic setObject:mess forKey:@"市名字"];
//创建区的数组
NSMutableArray *areadic = [NSMutableArray array];
//添加入市字典
[citydic setObject:areadic forKey:@"区数组"];
//找 对应的省字典 (数组最后一个元素)
NSMutableDictionary *prodic = [proarr lastObject];
//然后再找对应的市 数组
NSMutableArray *cityarr = prodic[@"市数组"];
//将市字典放入 市数组
[cityarr addObject:citydic];
}else{//取完省和市信息后剩下的区信息
//找到省字典
NSMutableDictionary *prodic = [proarr lastObject];
//市数组
NSMutableArray *cityarr = prodic[@"市数组"];
//市字典
NSMutableDictionary *citydic = [cityarr lastObject];
//区数组(获取自 对应市字典中)
NSMutableArray *areaarr = citydic[@"区数组"];
//取剩下的区的值
[areaarr addObject:mess];
}
}
for (NSMutableDictionary *dic in proarr) {//遍历省数组 (省字典放入新建字典)
NSLog(@"%@",dic[@"省名字"]);//获取key"省名字"的value
NSMutableArray *cityarr = dic[@"市数组"];//如上创建市数组 (在省字典中)
for (NSMutableDictionary *citydic in cityarr) {//遍历市数组 (市字典放入新建字典)
NSLog(@"%@",citydic[@"市名字"]);//获取key"市名字"的value
NSMutableArray *areaarr = citydic[@"区数组"];//创建区数组
for (NSString *area in areaarr) {//遍历区数组 (字符串获取)
NSLog(@"%@",area);//输出区
}
}
}