gpt4 book ai didi

ios - GMSGeocoder - 如何设置响应语言

转载 作者:技术小花猫 更新时间:2023-10-29 11:08:45 30 4
gpt4 key购买 nike

在国外使用我的应用程序时,google GMSGeocoder 会自动以本地语言返回响应。我怎样才能将它设置为始终以英文返回响应?

我使用的是 GMS SDK 1.7,我的代码是这样的:

GMSGeocoder *geoCoder = [[GMSGeocoder alloc] init];


[geoCoder reverseGeocodeCoordinate:self.cellLocation.coordinate completionHandler:^(GMSReverseGeocodeResponse *respones, NSError *err) {
if([respones firstResult]) {

GMSAddress* address = [respones firstResult];
NSString* fullAddress = [NSString stringWithFormat:@"%@, %@",address.thoroughfare, address.locality];

self.theTextField.text = fullAddress;

} else {
self.theTextField.text = @"";
}
}];

最佳答案

使用 GMSGeocoder 类别可以解决这个问题,灵感来自@DaNLtR之后,它可以将地理编码器结果设置为英文。

@implementation GMSGeocoder (Load)

+(void)load {
[[self class] setUserLanguage:@"en-CN"];// set your wanted language.
NSLog(@"GMSGeocoder + load!");
}
- (void)dealloc {
[[self class] resetSystemLanguage];
NSLog(@"GMSGeocoder + dealloc!");
}
+ (void)setUserLanguage:(NSString *)userLanguage
{

if (!userLanguage.length) {
[[self class] resetSystemLanguage];
return;
}

[[NSUserDefaults standardUserDefaults] setValue:userLanguage forKey:@"UserLanguage"];
[[NSUserDefaults standardUserDefaults] setValue:@[userLanguage] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
}

+ (void)resetSystemLanguage
{
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"UserLanguage"];
[[NSUserDefaults standardUserDefaults] setValue:nil forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
@end

为什么要在类中?

A:我在GMSGeocoder reverseGeocodeCoordinate 方法之前测试了setLanguage:,它不会影响地理编码器的结果。看到DaNLtR的回答后,我想我们可以在加载方法中设置语言。

为什么要重新设置语言?

A:避免影响其他模块或框架。

关于ios - GMSGeocoder - 如何设置响应语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22908370/

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