为CLPlacemark实例类设置一个常量语言

时间:2013-10-14 09:40:41

标签: iphone ios objective-c localization hebrew

我看过每一个地方,并没有找到答案。

我正在构建一个使用用户位置(lat + long)的iOS应用 创建一个CLPlacemark,并将street + country发送到服务器并根据此位置返回响应。

现在服务器只能获得希伯来语值,并且CLPlacemark值会根据用户的操作系统进行更改。

我可以将一个const语言设置为CLPlacemark类实例吗? 我希望CLPlacemark将返回希伯来语,无论用户的操作系统如何

这是我的代码:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

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

         CLPlacemark *placemark = [placemarks objectAtIndex:0];
         placemark.

         self.countryTextBox.text =[placemark.addressDictionary valueForKey:@"Country"];
         self.citiTextBox.text =[placemark.addressDictionary valueForKey:@"City"];
         self.streetTextBox.text =[placemark.addressDictionary valueForKey:@"Street"];
         self.zipCodLbl.text =[placemark.addressDictionary valueForKey:@"ZIP"];


         //NSLog(@"%@",placemark.addressDictionary);
         NSLog(@"%@",[placemark.addressDictionary valueForKey:@"Country"]);
         NSLog(@"%@",[placemark.addressDictionary valueForKey:@"City"]);
         NSLog(@"%@",[placemark.addressDictionary valueForKey:@"Street"]);
         NSLog(@"%@",[placemark.addressDictionary valueForKey:@"ZIP"]);

         [locationManager stopUpdatingLocation];
         [self.animationBar stopAnimating];



             }];

}

非常感谢。

IDAN。

2 个答案:

答案 0 :(得分:4)

经过艰苦的搜索,我终于解决了它。

在视图中加载时只需添加以下代码行:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"he"] forKey:@"AppleLanguages"];

如果这对某人有帮助 - 太好了!

答案 1 :(得分:0)

搞乱用户的系统偏好是不好的做法!! 你应该改用:

NSLocale *yourLocal = [[NSLocale alloc] initWithLocaleIdentifier:@"de"];
[geoCoder reverseGeocodeLocation: preferredLocale:yourLocal completionHandler:
     ^(NSArray *placemarks, NSError *error) {

}];