1.首先要準備好包含所有省市區的文檔,將文檔拖到我們建好的Xcode裡
2.然後建立一個路徑NSString *path = @" "; 再將省市區文檔拖到@" "中;
3.在進行排序前,我們首先要先濾清思路:這答題的難題是在於如何將字典裝入數組,再把數組裝入字典,所以關鍵點就在於如何通過嵌套將每個字典與數組歸到於它們相對應的數組與字典裡 提供一個小思路:數組->字典->數組->字典->數組
- 首先我們要建立一個包含所有省 市 區的省數組
- 然後再建立一個省字典 (包含省名和市數組)
- 再建立一個市字典 (同理包含市名和區數組)
- 建立好相應的字典和數組後,我們只要將所有的市,區通過嵌套存入相對應的數組即可
4.完成上面的準備工作後,我們就可以開始進行省市區的排序了
根據路徑產生相應的字元 tring *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 經典字典數組排序的範例程式碼,謝謝大家對本站的支援!