#Objective-C 经典字典数组排序 - 省市区

原创 2015年12月24日 09:42:10


1.首先要准备好包含所有省市区的文档,将文档拖到我们建好的Xcode里



2.然后新建一个路径NSString *path = @" ";   再将省市区文档拖到@"  "中;


3.在进行排序前,我们首先要先滤清思路:这答题的难题是在于如何将字典装入数组,再把数组装入字典,所以关键点就在于如何通过嵌套将每个字典与数组归到于它们相对应的数组与字典里   提供一个小思路:数组->字典->数组->字典->数组
  1. 首先我们要建立一个包含所有省 市 区的省数组
  2. 然后再建立一个省字典 (包含省名和市数组)
  3. 再建立一个市字典 (同理包含市名和区数组)
  4. 建立好相应的字典和数组后,我们只要将所有的市,区通过嵌套存入相对应的数组即可

4.完成上面的准备工作后,我们就可以开始进行省市区的排序了

     根据路径产生相应的字符                          
NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
   对字符串进行切割成为数组
   NSArray *array = [str componentsSeparatedByString:@"\n"];

    建立一个大数组
    NSMutableArray *mutableArray = [NSMutableArray array];
    for (NSString *str in array) {

      判断非空格字符,找出省
        if (![str hasPrefix:@" "]) {

     每找到一个省名字,就创建一个字典
     NSMutableDictionary *proDic = [NSMutableDictionary dictionary];

     将省名存入字典,并设置Key为PROVIN
     [proDic setObject:str forKeyedSubscript:@"PROVIN"];

     创建一个数组,作为存下属市用
     NSMutableArray *cityArray = [NSMutableArray array];

     将市数组存入字典,设置key位CITYARRAY
     [proDic setObject:cityArray forKeyedSubscript:@"CITYARRAY"];
     [mutableArray addObject:proDic];
        }

     找到市名字
     if ([str hasPrefix:@"  "]&& ![str hasPrefix:@"    "]) {

     取出数组最后一个元素,代表市所隶属的省字典
     NSDictionary *proDic = [mutableArray lastObject];

            
     将字典中预留的数组取出
     NSMutableArray *cityArray = [proDic objectForKey:@"CITYARRAY"];
            
     每找到一个市,创建一个字典
     NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];
            
     将市名字存入字典
     [cityDic setObject:str forKey:@"CITY"];
            
     给下属区域创建个数组作为预留
     NSMutableArray *areaArray = [NSMutableArray array];
           
     存入字典
     [cityDic setObject:areaArray forKey:@"AREAARRAY"];
           
     将市字典存入数组中
     [cityArray addObject:cityDic];
     }
        
      找出下属区
        if ([str hasPrefix:@"    "]) {
           找出隶属的省字典
           NSDictionary *proDic = [mutableArray lastObject];
           找出市数组
           NSMutableArray *cityArray = [proDic objectForKey:@"CITYARRAY"];
           找出存储市的字典
           NSDictionary *cityDic = [cityArray lastObject];
         找出字典中区数区
           NSMutableArray *areaArray = [cityDic objectForKey:@"AREAARRAY"];
           将区域名字存入数组
            [areaArray addObject:str];
       }
   }
    for (NSDictionary *dic in mutableArray) {
        NSLog(@"%@",[dic objectForKey:@"PROVIN"]);
        for (NSDictionary *cityDic in [dic objectForKey:@"CITYARRAY"]) {
            NSLog(@"%@",[cityDic objectForKey:@"CITY"]);
           for (NSString *string  in [cityDic objectForKey:@"AREAARRAY"]) {
               NSLog(@"%@",string);
            
            }
       }
        
   }</span></span>


#Objective-C 经典字典数组排序 - 省市区

1.首先要准备好包含所有省市区的文档,将文档拖到我们建好的Xcode里 2.然后新建一个路径NSString *path = @" ";   再将省市区文档拖到@"  "中;...
  • sadsadaadsd
  • sadsadaadsd
  • 2016年04月21日 08:41
  • 248

Objective-C_字典、集合、数组排序

讲解字典类,集合类,数组、字典、集合的快速遍历,数组排序,数组元素按照数值大小排序等知识点。...
  • u013485543
  • u013485543
  • 2015年08月09日 15:52
  • 666

Objective-C 省市区 字典 封装

Objective-C+ 封装+ 字典封装+ 省市区封装
  • seal82
  • seal82
  • 2015年07月27日 19:26
  • 259

【学习ios之路:Objective-C】字典.集合.

1.不可变数据字典(NSDicionary) 字典:用来存储具有一一对应关系的数据. 一个key 对应一个 value ,key起到了唯一标示的作用,key必须是唯一的,但是一个vlaue可以对应多个...
  • ZFX5130
  • ZFX5130
  • 2015年01月01日 22:14
  • 1465

Objective-C------NSDictionary、NSMutableDictionary字典对象用法总结

//NSDictionary字典对象--不可变字典 /* 字典:由键-对象对组成的数据集合,可以是动态的,字典中的记录可以动态的添加和删除,可以用键检索词典或者枚举他们的内容 键:必须是单值,一般是字...
  • javamimi
  • javamimi
  • 2015年09月22日 16:46
  • 602

Objective-C学习-字典类型 NSDictionary 和 NSMutableDictionary

字典类型 NSDictionary 和 数组NSArray  类型相似,但存在数组里要取值每次都要遍历,这样就浪费了很长的时间,字典的便利就在于他在存取对象的时候,在后面会追加一个 键值,可以理解成一...
  • RunIntoLove
  • RunIntoLove
  • 2015年08月04日 20:01
  • 1176

OC字典的使用省市区

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

OC_省市区字典

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

python字典数组排序实现

python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。 sort函数和sorted函数唯一的不同是,sort是在容器内排序,sorted生成一个新的排好序...
  • liuzhoulong
  • liuzhoulong
  • 2012年04月21日 19:20
  • 5268

省市区字典

// 准备工作 NSString *path=@”/Users/dlios/Desktop/内容/OC06_省市区字典数组/OC06_省市区字典数组/area.txt”; // 跟...
  • a826161815
  • a826161815
  • 2015年07月23日 19:58
  • 735
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#Objective-C 经典字典数组排序 - 省市区
举报原因:
原因补充:

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