CLLocationManager reverseGeocodeLocation语言

Sha*_*har 5 xcode core-location ios

我在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];
    }
Run Code Online (Sandbox Code Playgroud)

Sha*_*har 7

我设法最终弄明白,所以这也适合那些可能需要它的人.

  1. 从SUserDefaults standardUserDefaults获取"Ap​​pleLanguages"密钥并保存以供日后使用.
  2. 将"AppleLanguages键设置为仅"en"
  3. 抓住位置(现在只有英文)
  4. 从之前恢复"AppleLanguages"键.

// 1 + 2

NSArray *currentLanguageArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
         //get the location
Run Code Online (Sandbox Code Playgroud)

// 4

[[NSUserDefaults standardUserDefaults] setObject:currentLanguageArray forKey:@"AppleLanguages"];
Run Code Online (Sandbox Code Playgroud)

希望有所帮助