iOS反向地理编码问题:无法返回placemark.locality的值

4

当我使用CLGeocoder获取当前城市名称时,遇到了一个非常奇怪的问题。

我用Cupertino作为验证地点,我可以100%确定这不是覆盖范围的问题。NSLog正确打印了placemark,但在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); 

你的目标是哪个iOS版本? - Ares
目标是在 iOS 4.3 版本之后的版本中运行,但所有尝试都失败了。顺便问一下,我当前使用的是6.1 SDK 进行构建,这会有问题吗? - piaChai
本地化仅适用于iOS 5.0及更高版本。 - Ares
尝试过iOS6.0,但没有成功。 - piaChai
刚刚从App Store被拒绝了,说启动应用程序时未找到位置。我正在显示placemark.locality,我猜测试人员可能在库比蒂诺。如果本地性为空,我将使用placemark.name作为备份。 - Steven Stefanik
1个回答

3

您可以尝试一下这个:

[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {
            for (CLPlacemark *placemark in placemarks) {
                NSString *city = [placemark locality];
                NSLog(@"%@", city);
            }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接