/**
* 获取所有城市名字拼音首字母,用系统的方法将汉字转换成拼音
*
* @param allCitiesArray 存放所有城市的数组
*/
- (NSMutableDictionary *)allCitiesDic:(NSMutableArray *)allCitiesArray
{
self.allCitiesDic = [NSMutableDictionary dictionary];
for (NSString *cityNameString in allCitiesArray) {
if (cityNameString != nil) {
// 将汉字转换成拼音
NSString *string = [self <span style="color:#ff0000;">transformMandarinToLatin:</span>cityNameString];
NSString *key = [string substringToIndex:1];
key = [key uppercaseString];
NSMutableArray *oneGroupArray = [_allCitiesDic objectForKey:key];
// 特殊的城市名单独写出来
if ([string isEqualToString:@"zhang sha"]) {
NSMutableArray *array = [_allCitiesDic objectForKey:@"C"];
[array addObject:cityNameString];
}else if (oneGroupArray) {
[oneGroupArray addObject:cityNameString];
}else{
NSMutableArray *newGroupArray = [NSMutableArray array];
[newGroupArray addObject:cityNameString];
[_allCitiesDic setObject:newGroupArray forKey:key];
}
}
}
return _allCitiesDic;
}
/**
* 将汉字转换为不带音调的拼音
*
* @param string 需要转换的汉字字符串
*
* @return 转换好的拼音字符串
*/
- (NSString *)transformMandarinToLatin:(NSString *)string
{
NSMutableString *preString = [string mutableCopy];
/*转换成成带音 调的拼音*/
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformMandarinLatin, NO);
/*去掉音调*/
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformStripDiacritics, NO);
return preString;
}
/**
* 对所有的key值进行排序
*/
- (NSMutableArray *)sortedAllCityKeysArray
{
self.allCityKeysArray = [NSMutableArray arrayWithArray:[_allCitiesDic.allKeys sortedArrayUsingSelector:@selector(compare:)]];
return _allCityKeysArray;
}