#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_字典、集合、数组排序

讲解字典类,集合类,数组、字典、集合的快速遍历,数组排序,数组元素按照数值大小排序等知识点。...

iOS objective-c NSDictionary有序排列

方法:由于NSDictionary是无顺序的,有时候我们需要将一个Dictionary进行有序排列就需要通过数组来实现。NSArray *keysArray = [dictionary allKeys...

使用微软Kinect进行手势识别操作的一个简单范例(2)(WPF-C#)

在我上一篇博客中:http://blog.csdn.net/soft2buy/article/details/6589326 介绍了一个用微软的Kinect Sensor 捕捉双手动作的简单例子。今天...
  • soft2buy
  • soft2buy
  • 2011年07月29日 00:17
  • 12105

objective-c 省市区练习(数组与字典的嵌套)

啥也别说了直接上代码: //找文件位置 有两种方法 NSString *path = @"/Users/lan/Desktop/OC语言/Wzh_OC_07_省市区练习/Wzh_OC_07_省...

#Objective-C 之 省市区 (数组-字典-数组-字典-数组)

通过Object-C的数组与字典组合嵌套,完成对省市区的排序封装
  • Clhwa
  • Clhwa
  • 2015年12月23日 15:08
  • 602

Objective-C 省市区 字典 封装

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

Objective-C实现一个基于数组下标[index]和字典[@"key"]的访问模式

// // MyArray.h // 001-自己实现数组下标 // // #import @interface MyArray : NSObject { @private ...

【学习ios之路:Objective-C】数组,字符串,字典的总和练习

①.实现方法:13个人,3个人一组,用一个大数组来管理每一个分组. //1.原数组 NSArray *array = @[@1,@2,@3,@4,@5,...
  • ZFX5130
  • ZFX5130
  • 2015年01月06日 20:02
  • 1830

objective-c&nbsp;截取字符串&nbsp;数组&nbsp;字典…

1.        //该的首字附 大写         NSString *ns22=[[NSString alloc]initWithFormat:@"dsf"];         NSLog(@...

Objective-C----快速枚举、数组排序

直接上代码: /* * 快速枚举 * */ NSLog( @"++++++++++++++++++" ) ; ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#Objective-C 经典字典数组排序 - 省市区
举报原因:
原因补充:

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