gpt4 book ai didi

xcode - 反向地理编码以仅以英文返回结果?

转载 作者:行者123 更新时间:2023-12-04 10:00:07 28 4
gpt4 key购买 nike

使用下面的代码,我请求对当前坐标进行反向地理编码。
一切正常,除非设备设置为与英语不同的语言。
示例:如果设备的语言是意大利语,而我在意大利,则国家/地区的结果是“意大利”而不是“意大利”。
无论设备的语言如何,如何强制结果仅显示英文?

CLGeocoder *geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:myCurrentLocation completionHandler:^(NSArray *placemarks, NSError *error) {

for (CLPlacemark * placemark in placemarks) {

[locationController setLastKnownCountry:[placemark country]];
}
}];

谢谢你。

最佳答案

您必须使用 NSLocale 类来管理每种语言的信息。然后对于您的最终翻译,您必须强制语言环境为英语:

CLGeocoder *geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:myCurrentLocation completionHandler:^(NSArray *placemarks, NSError *error) {

for (CLPlacemark * placemark in placemarks) {
//Obtains the country code, that is the same whatever language you are working with (US, ES, IT ...)
NSString *countryCode = [placemark ISOcountryCode];
//Obtains a locale identifier. This will handle every language
NSString *identifier = [NSLocale localeIdentifierFromComponents: [NSDictionary dictionaryWithObject: countryCode forKey: NSLocaleCountryCode]];
//Obtains the country name from the locale BUT IN ENGLISH (you can set it as "en_UK" also)
NSString *country = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] displayNameForKey: NSLocaleIdentifier value:identifier];

//Continues your code
[locationController setLastKnownCountry:country];
}
}];

关于xcode - 反向地理编码以仅以英文返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25144508/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com