4

当我使用 CLGeocoder 获取当前城市名称时,我遇到了一个非常奇怪的问题。我用来验证的地方是库比蒂诺。我 100% 确定这不是覆盖问题。

NSLog 正确打印了地标,但是当涉及到 placemark.locality 时,它会打印(null)。我尝试了其他属性,它们都有效。我环顾四周,人们似乎也有类似的问题,但没有可行的答案。提前感谢您的帮助。

代码如下:

[geoCoder reverseGeocodeLocation:newLocation
                       completionHandler:^(NSArray *placemarks, NSError *error) {  

                           NSLog(@"%@",placemarks);

                           CLPlacemark *placemark =[placemarks objectAtIndex:0];
                           NSLog(@"%@",placemark);
                           NSString *city = placemark.locality;
                           NSLog(@"City:%@", city);
                           if (!city){
                              city = placemark.subAdministrativeArea;
                           }
                           NSLog(@"City:%@", city); 
4

1 回答 1

3

你可以试试这个,

[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {
            for (CLPlacemark *placemark in placemarks) {
                NSString *city = [placemark locality];
                NSLog(@"%@", city);
            }
}
于 2014-01-02T14:05:24.413 回答