您的位置:首页 > 移动开发 > IOS开发

iOS 城市定位 英文

2015-12-22 14:54 716 查看
iOS 手机设置英文语言 城市定位 返回英文 问题。

1.先把当前的语言环境记录下来。

2.把当前语言环境改为中文语言之后再执行反地理编码。

3.要在执行完反地理编码之后,再改回原来的语言环境。

- (void)startLocation {
    if (![CLLocationManager locationServicesEnabled]) {
        [UIAlertView bk_showAlertViewWithTitle:@"定位服务未开启" message:@"请在系统设置中开启定位服务\n(设置>隐私>定位服务>开启)" cancelButtonTitle:nil otherButtonTitles:@[@"知道了"] handler:nil];
        return;
    }
    if(IS_IOS_8_OR_LATER){
//        [self.locationManager requestAlwaysAuthorization];
        [self.locationManager requestWhenInUseAuthorization];
    }
    [self.locationManager startUpdatingLocation];
}

#pragma mark - CLLocationManagerDelegate

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation {
    [self.locationManager stopUpdatingLocation];
    self.userLocation = [JZLocationConverter wgs84ToGcj02:newLocation.coordinate];
    [UserManage sharedInstance].userLocationed = self.userLocation;
    
    // 保存 Device 的现语言 (英语 法语 ,,,)
    NSMutableArray *userDefaultLanguages = [[NSUserDefaults standardUserDefaults]
                                            objectForKey:@"AppleLanguages"];
    // 强制 成 简体中文
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"zh-hans",nil]
                                              forKey:@"AppleLanguages"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    CLGeocodeCompletionHandler handle = ^(NSArray *placemarks, NSError *error) {
        for (CLPlacemark *placeMark in placemarks) {
//            NSString *cityName = [placeMark addressDictionary][@"City"];
            NSString *cityName = [placeMark administrativeArea];
            
            if (cityName.length == 0) {
                cityName = [placeMark addressDictionary][@"State"];
            }
            if ([[cityName substringFromIndex:[cityName length] - 1] isEqualToString:@"市"]) {
                cityName = [cityName substringToIndex:[cityName length] - 1];
            }
            self.cityName = cityName;
        }
        // 还原Device 的语言
        [[NSUserDefaults standardUserDefaults] setObject:userDefaultLanguages forKey:@"AppleLanguages"];
    };
    self.geocoder = [[CLGeocoder alloc] init];
    [self.geocoder reverseGeocodeLocation:newLocation completionHandler:handle];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: