我在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];
}
答案 0 :(得分:7)
我最终设法弄明白,所以这也适合那些可能需要它的人。
// 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"];
希望有所帮助
答案 1 :(得分:1)
CLGeocoder针对这种情况提供了一种方便的方法:
- (void)reverseGeocodeLocation:(CLLocation *)location
preferredLocale:(NSLocale *)locale
completionHandler:(CLGeocodeCompletionHandler)completionHandler;
在iOS 11及更高版本中可用。