1. 程式人生 > >#Objective-C 經典字典陣列排序

#Objective-C 經典字典陣列排序

     根據路徑產生相應的字元                          
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>