省市区字典类型--OC方法

原创 2015年07月22日 20:05:31

我觉得字典问题有点类似于嵌套的问题,在解决问题前可以将相互之间的关系写出来再进行编写,这样会使思路更加清晰.在打印的时候就相当于剥皮,从外层开始一层层进行.

//先将txt文件的路径添加到工程中
NSString *path =@"/Users/dlios/Desktop/.....";
//根据路径产生相应的字符串
NSString *str =[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
//对字符串进行逐行切割
NSArray *strArr = [str componentsSeparatedByString:@"\n"];
//创建一个省数组
NSMutableArray *proArr = [NSMutableArray array];
//遍历字符串数组
for (NSString *temp in strArr){
    if ( ! [temp hasPrefix:@" "]){
        //创建一个省的字典去存放省名
        NSMutableDictionary *proDic = [NSMutableDictionary dictionary];
        //想将省名放进去 就得通过创建键值对的方式存放
        //省名的键值对的创建
        [proDic setObject:temp forKey:@"proName"];
//因为省之下有市,所以也得在省的字典中创建市数组取存放该省的各个市名
        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 *zoneArr = [NSMutableArray array];
        [cityDic setObject:zoneArr  forKey:@"zoneArr"];
   //创建完成后需要将市字典找到存放的位置
        //先找到对应的省字典位置
        NSMutableDictionary *proDic =[proArr lastObject];
        //再找到对应市数组
        NSMutableArray *cityArr = proDic [@"cityArr"];
        //将市字典放到是数组中
        [cityArr addObject:cityDic];
        }else{
        //先找到省字典
        NSMutableDictionary *proDic = [proArr lastObject];
        //市数组
        NSMutableArray *cityArr = proDic[@"cityArr"];
        //市字典
        NSMutableDictionary *cityDic = [cityArr lastObject];
        //区数组
        NSMutableArray *zoneArr = cityDic[@"zoneArr"];
        //添加区名
        [zoneArr addObject:temp];
        }
    }
    for( NSMutableDictionary *dic in proArr){
        NSLog(@"%@",dic[@"proName"]);
        NSMutableArray * cityArr = dic[@"cityArr"];
            for (NSMutableDictionary *cityDic in cityArr){
             NSLog(@"%@",cityDic[@"cityName"]);
             NSMutableArray *zoneArr = cityDic[@"zoneArr"];
             for(NSString *zone in zoneArr){
            NSLog(@"%@",zone);
             }
            }
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

OC_省市区字典

// //  main.m //  OC05_省市区字典 // //  Created by dlios on 15-5-13. //  Copyright (c) 20...
  • super6kingl
  • super6kingl
  • 2015年05月14日 19:45
  • 659

OC字典的使用省市区

首先我们需要一个大的数组,chinaArray,判断省名,市名,区名,如果字符串前没有空格则为省名,字符串前有一个空格并且没有两个空格则为市名,字符串前有两个空格则为区名。      如果为省名则定...
  • HongDoubb
  • HongDoubb
  • 2016年05月28日 09:43
  • 255

OC数组和字典嵌套练习:省市区

将文件中的省市区读出来并放在数组和字典嵌套的数据结构中 有注释的版本: #import int main(int argc, const char * argv[]) { @autor...
  • Crow1108
  • Crow1108
  • 2015年08月22日 19:27
  • 1777

省市区字典

// 准备工作 NSString *path=@”/Users/dlios/Desktop/内容/OC06_省市区字典数组/OC06_省市区字典数组/area.txt”; // 跟...
  • a826161815
  • a826161815
  • 2015年07月23日 19:58
  • 739

探讨OC中字典的存储方式

为什么要写这个文档? 我在重温OC的字典类型时,发现了setValue:把值设为nil之后字典中会自动删除这个关键字指向的键值对。于是,我突然有了一个想法,在字典中可以存在多个相同的变量值,但是关键字...
  • qq_25276029
  • qq_25276029
  • 2015年03月01日 23:04
  • 1826

OC字典练习 -- 中国省市区

// //  main.m //  oc06  -- 省市区字典 // //  Created by dllo on 15/7/22. //  Copyright (...
  • gao_zi
  • gao_zi
  • 2015年07月23日 18:13
  • 662

ObjectC----字典类和集合类以及快速枚举和OC中的数组排序

// Create By 郭仔  2015年04月01日20:06:36 // 不可变字典     // 字典是适用于存放键值对的一种集合,里面的元素必须是对象类型   ...
  • guoxianzhuang
  • guoxianzhuang
  • 2015年04月01日 20:06
  • 5732

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

//这是Objective-c OC 中关于 字典与数组嵌套使用的一道经典例题,//为了能让正在学习OC的伙伴们看的更加明白 注释写得很是详细// //省 市 区 划分 // main.m // ...
  • TheSoftLight
  • TheSoftLight
  • 2015年11月10日 19:52
  • 410

Objective-C语法之字面量语法

今天来学习下Objective-C中的字面量语法,之前只是知道可以这样创建对象,并没有很清晰的一个总结,看过一本书之后觉得有必要摘出来,方便巩固自己的知识。 通常我们会用alloc和init方法来分...
  • tyuersunshine
  • tyuersunshine
  • 2016年05月29日 14:14
  • 1009

OC中的字典以及常用方法

#import int main(int argc, const char * argv[]) {     //创建一个字典     //初始化     NSDi...
  • li_xiaomo
  • li_xiaomo
  • 2014年10月16日 20:56
  • 2292
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:省市区字典类型--OC方法
举报原因:
原因补充:

(最多只允许输入30个字)