2

我遇到了一个相当奇怪的情况,后端开发人员要求我强制执行地理定位返回的城市名称使用特定语言?例如,无论 iOS 使用哪种语言,都让它返回哥本哈根而不是哥本哈根。我在网上找不到任何关于此的内容。您的帮助将不胜感激。谢谢

4

1 回答 1

2

不确定这是否是最好和最安全的解决方案,但您可以在进行反向地理代码调用时临时更改区域设置,然后在完成后将其重置。

NSArray *defaultLanguages = [[NSUserDefaults standardUserDefaults] valueForKey:@"AppleLanguages"];
NSArray *languages = [NSArray arrayWithObject:@"da"];
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
CLLocation *location = [[CLLocation alloc] initWithLatitude:coordinate.latitude longitude:coordinate.longitude];
[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
        CLPlacemark *placemark = placemarks[0];
        NSString *danish = placemark.country;
        [[NSUserDefaults standardUserDefaults] setObject:defaultLanguages forKey:@"AppleLanguages"];
        [[NSUserDefaults standardUserDefaults] synchronize];
}];
于 2013-08-21T08:22:35.343 回答