我在iPhone上使用CLLocationManager来获取当前用户位置,然后我使用reverseGeocodeLocation将位置转换为地址.
这工作正常,但结果以设备语言返回,我需要它们始终使用英语.
有没有办法以所需语言获取地址字符串或转换它?
[geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks,NSError *error) { NSLog(@"Found placemarks: %@,error: %@",placemarks,error); if (error == nil && [placemarks count] > 0) { placemark = [placemarks lastObject]; }
解决方法
我设法最终弄明白,所以这也适合那些可能需要它的人.
>从SUserDefaults standardUserDefaults获取“AppleLanguages”键并保存以供日后使用.
>将“AppleLanguages键”设置为“en”
>抓住位置(现在只有英文)
>从之前恢复“AppleLanguages”键.
// 1 2
NSArray *currentLanguageArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]; [[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"en",nil] forKey:@"AppleLanguages"]; //get the location
// 4
[[NSUserDefaults standardUserDefaults] setObject:currentLanguageArray forKey:@"AppleLanguages"];
希望有所帮助