#Objective-C 經典字典陣列排序 阿新 • • 發佈:2019-02-04 根據路徑產生相應的字元 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>